jpa
Relación uno a muchos
Buscar..
Parámetros
| Anotación | Propósito |
|---|---|
| @TableGenerator | Especifica el nombre del generador y el nombre de la tabla donde se puede encontrar el generador |
| @GeneratedValue | Especifica la estrategia de generación y se refiere al nombre del generador. |
| @ManyToOne | Especifica la relación de muchos a uno entre el empleado y el departamento |
| @OneToMany (mappedBy = "departamento") | crea una relación bidireccional entre el empleado y el departamento simplemente refiriéndose a la anotación @ManyToOne en la entidad del empleado |
Uno a muchos relación
La asignación de uno a muchos es generalmente una relación bidireccional de la asignación de muchos a uno. Tomaremos el mismo ejemplo que tomamos para la asignación de Muchos a uno.
Empleado.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
}
Departamento.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
}
Esta relación se representa en la base de datos de la siguiente manera.
Hay dos puntos para recordar acerca de jpa uno a muchos mapas:
- El muchos a un lado es el lado propietario de la relación. La columna se define en ese lado.
- El mapeo uno a muchos es el lado inverso, por lo que el elemento mappedBy debe usarse en el lado inverso.
El ejemplo completo puede ser referido aquí
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow