jpa
Eén op veel relatie
Zoeken…
parameters
| aantekening | Doel |
|---|---|
| @TableGenerator | Hiermee geeft u de naam van de generator en de tabel op waar de generator kan worden gevonden |
| @GeneratedValue | Specificeert de generatiestrategie en verwijst naar de naam van de generator |
| @ManyToOne | Geeft een veel-op-een-relatie aan tussen werknemer en afdeling |
| @OneToMany (mappedBy = "afdeling") | creëert een bidirectionele relatie tussen werknemer en afdeling door eenvoudigweg te verwijzen naar @ManyToOne annotatie in de entiteit Werknemer |
Eén op veel relatie
Eén-op-veel-toewijzing is over het algemeen gewoon een bidirectionele relatie van veel-op-één-toewijzing. We zullen hetzelfde voorbeeld nemen dat we hebben gekozen voor Many to one mapping.
Employee.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
}
Department.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
}
Deze relatie wordt in onderstaande database weergegeven.
Er zijn twee punten om te onthouden over jpa one to many mapping:
- De vele aan één kant is de eigendomszijde van de relatie. De kolom is aan die zijde gedefinieerd.
- De toewijzing van één op veel is de omgekeerde kant, dus het element mappedBy moet aan de omgekeerde kant worden gebruikt.
Volledig voorbeeld kan worden verwezen hier
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow