Hallo, ich habe angefangen mich mit der Persistenz zu beschäftigen.
Dabei entdecke ich einige Annotations, die mich etwas verwirren.
Und zwar:
Beziehung zwischen: Kunde-----Vertrag ist eine 1:n Beziehung, also ein Kunde kann mehrere Verträge haben.
DB-Ansicht:
Tabelle Kunde (id_kunde ,name, vorname)
Tabelle Vertrag (id, Firma, pk_id_kunde)
D.h. Ich setzte nen Fremdschlüssel von Kunden bei der Tabelle Vertrag
Das möchte ich nun als Persistenz abbilden.
Dann habe ich 2 Klassen:
1. Also hier habe ich dann eine bidiriktionale Beziehung (auf der Java-Ebene).
Macht der Parameter "mappedBy" deutlich, dass cClient der Fremdschlüssel in der Tabelle Contract ist?
Oder hat das mit der Fremdschlüsselvergabe nix zu tun?
Wie macht man das dann??
2. Der zweite Parameter "orphanRemoval" löscht den Datensatz. Ist damit die referenzielle Intergrität gemeint?
oder wird die referenzielle Intergrität mit dem Parameter: cascade = CascadeType.ALL
festgelegt??
Habe ich diese 1:n beziehung richtig implementiert?
Was meint man eigneltich mit einer unidirktionalen Beziehung???
Danke für jeden Tipp.
Dabei entdecke ich einige Annotations, die mich etwas verwirren.
Und zwar:
Beziehung zwischen: Kunde-----Vertrag ist eine 1:n Beziehung, also ein Kunde kann mehrere Verträge haben.
DB-Ansicht:
Tabelle Kunde (id_kunde ,name, vorname)
Tabelle Vertrag (id, Firma, pk_id_kunde)
D.h. Ich setzte nen Fremdschlüssel von Kunden bei der Tabelle Vertrag
Das möchte ich nun als Persistenz abbilden.
Dann habe ich 2 Klassen:
Java:
@Entity
public class Client implements Serializable {
@OneToMany(mappedBy="cClient", orphanRemoval=true)
private Set<Contract> cContract;
}
1. Also hier habe ich dann eine bidiriktionale Beziehung (auf der Java-Ebene).
Macht der Parameter "mappedBy" deutlich, dass cClient der Fremdschlüssel in der Tabelle Contract ist?
Oder hat das mit der Fremdschlüsselvergabe nix zu tun?
Wie macht man das dann??
2. Der zweite Parameter "orphanRemoval" löscht den Datensatz. Ist damit die referenzielle Intergrität gemeint?
oder wird die referenzielle Intergrität mit dem Parameter: cascade = CascadeType.ALL
festgelegt??
Java:
public class Contract implements Serializable {
@ManyToOne
private Client cClient;
}
Habe ich diese 1:n beziehung richtig implementiert?
Was meint man eigneltich mit einer unidirktionalen Beziehung???
Danke für jeden Tipp.