Guten Mittag,
ich hoffe ihr könnt mir weiter helfen! Zur Zeit bin ich in der Einarbeitung von Spring Boot und versuche Daten über ein Rest Interface einem Client zur Verfügung zu stellen. Speziell bin ich auf der Suche nach einem "Best Practice" das Einfügen von Inhalten in Entities mit Abhängigkeiten. Ich habe eine Entity A, die in einer bidirektionalen "OneToMany" relation auf einer andere Entity B verweist und dabei die Eigenschaft "NotNull" hat.
Dazu zwei Standard "CRUD-Repositories" und ein "RestController"
Gerne würde ich jetzt einen neuen Eintrag für A hinzufügen mit:
dabei bekomme ich aber den Fehler, dass a nicht erstellt werden konnte.
Mich würde interessieren, wie normalerweise eine normalisierte Tabelle mit Relationships über die Rest Schnittstelle befüllt wird.
Wenn ich mein Problem noch nicht richtig erklärt habe, versuche ich es gerne nochmal auf eine andere Art.
Gruß nfweld
ich hoffe ihr könnt mir weiter helfen! Zur Zeit bin ich in der Einarbeitung von Spring Boot und versuche Daten über ein Rest Interface einem Client zur Verfügung zu stellen. Speziell bin ich auf der Suche nach einem "Best Practice" das Einfügen von Inhalten in Entities mit Abhängigkeiten. Ich habe eine Entity A, die in einer bidirektionalen "OneToMany" relation auf einer andere Entity B verweist und dabei die Eigenschaft "NotNull" hat.
Java:
@Entity
public class A implements Serializable {
@Id
@Column(unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private int idA;
private String valueA;
@OneToMany(mappedBy = "a", fetch = FetchType.EAGER)
private List<B> b;
public A(){};
public A(String valueA, B b){
this.vaueA = valueA;
this.b = new ArrayList();
this.b.add(b);
}
Java:
@Entity
public class B implements Serializable {
@Id
@Column(unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private int idB;
private String valueB;
@ManyToOne
@NotNull
@JoinColumn(name = "A_IDA")
private A a;
public B(){};
public B(String valueB, A a){
this.vaueB = valueB;
this.a = new ArrayList();
this.a.add(a);
}
Dazu zwei Standard "CRUD-Repositories" und ein "RestController"
Java:
@RestController
@RequestMapping("/api")
public class WeldingController {
@Autowired
ARepository aRepository;
@Autowired
BRepository bRepository;
@RequestMapping(method = RequestMethod.POST, value = "/a/")
public ResponseEntity<?> addA(@RequestBody A a) {
return new ResponseEntity<>(aRepository.save(a), HttpStatus.CREATED);
}
@RequestMapping(method = RequestMethod.POST, value = "/b/")
public ResponseEntity<?> addB(@RequestBody B b) {
return new ResponseEntity<>(bRepository.save(b), HttpStatus.CREATED);
}
}
Gerne würde ich jetzt einen neuen Eintrag für A hinzufügen mit:
Code:
{
"b":{
"valueB":"test1234",
"a:":{
"valueA":"test5678"
}
}
}
Mich würde interessieren, wie normalerweise eine normalisierte Tabelle mit Relationships über die Rest Schnittstelle befüllt wird.
Wenn ich mein Problem noch nicht richtig erklärt habe, versuche ich es gerne nochmal auf eine andere Art.
Gruß nfweld