jpa
Eine zu viele Beziehung
Suche…
Parameter
| Anmerkung | Zweck |
|---|---|
| @TableGenerator | Gibt den Namen des Generators und den Tabellennamen an, wo der Generator gefunden werden kann |
| @GeneratedValue | Gibt die Erzeugungsstrategie an und bezieht sich auf den Namen des Generators |
| @ManyToOne | Gibt eine viele-zu-eins-Beziehung zwischen Mitarbeiter und Abteilung an |
| @OneToMany (mappedBy = "Abteilung") | erstellt eine bidirektionale Beziehung zwischen Mitarbeiter und Abteilung, indem einfach auf die @ManyToOne-Anmerkung in der Entität Employee Bezug genommen wird |
Eine zu viele Beziehung
Eins-zu-viele-Zuordnungen ist im Allgemeinen einfach eine bidirektionale Beziehung zwischen Viel-zu-Eins-Zuordnung. Wir werden dasselbe Beispiel nehmen, das wir für viele zu einer Abbildung genommen haben.
Mitarbeiter.java
@Entity
public class Employee {
@TableGenerator(name = "employee_gen", table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", allocationSize = 100)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")
private int idemployee;
private String firstname;
private String lastname;
private String email;
@ManyToOne
@JoinColumn(name = "iddepartment")
private Department department;
// getters and setters
}
Abteilung.java
@Entity
public class Department {
@TableGenerator(table = "id_gen", pkColumnName = "gen_name", valueColumnName = "gen_val", name = "department_gen", allocationSize = 1)
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "department_gen")
private int iddepartment;
private String name;
@OneToMany(mappedBy = "department")
private List<Employee> employees;
// getters and setters
}
Diese Beziehung wird in der Datenbank wie folgt dargestellt.
Es gibt zwei Punkte, die Sie bei jpa eins zu vielen Mapping berücksichtigen sollten:
- Das Viele auf einer Seite ist die besitzende Seite der Beziehung. Die Spalte ist auf dieser Seite definiert.
- Die Eins-zu-Viele-Zuordnung ist die inverse Seite, daher muss das Element mappedBy auf der inversen Seite verwendet werden.
Das vollständige Beispiel kann hier referenziert werden
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow