jpa
Relazione da uno a molti
Ricerca…
Parametri
| Annotazione | Scopo |
|---|---|
| @TableGenerator | Specifica il nome del generatore e il nome della tabella in cui è possibile trovare il generatore |
| @GeneratedValue | Specifica la strategia di generazione e si riferisce al nome del generatore |
| @ManyToOne | Specifica una relazione molti a uno tra Dipendente e Reparto |
| @OneToMany (mappedBy = "reparto") | crea una relazione bidirezionale tra Dipendente e Dipartimento semplicemente facendo riferimento all'annotazione @ManyToOne nell'entità Dipendente |
Relazione One To Many
La mappatura da uno a molti è generalmente semplicemente una relazione bidirezionale di mappatura Molti a Uno. Prendiamo lo stesso esempio che abbiamo utilizzato per la mappatura da molti a uno.
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
}
Questa relazione è rappresentata nel database come di seguito.
Ci sono due punti da ricordare sulla mappatura da jpa one a many:
- Da molti a parte c'è il lato proprietario della relazione. La colonna è definita su quel lato.
- La mappatura da uno a molti è il lato inverso, quindi l'elemento mappedBy deve essere usato sul lato inverso.
L'esempio completo può essere riferito qui
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow