jpa
От одного до большого
Поиск…
параметры
| аннотирование | Цель |
|---|---|
| @TableGenerator | Задает имя генератора и имя таблицы, где можно найти генератор |
| @GeneratedValue | Определяет стратегию генерации и ссылается на имя генератора |
| @ManyToOne | Определяет отношения между несколькими сотрудниками и отделом |
| @OneToMany (mappedBy = "отдел") | создает двунаправленную связь между Employee and Department, просто обращаясь к аннотации @ManyToOne в сущности Employee |
От одного до большого
Отображение от одного до многих, как правило, представляет собой просто двунаправленную связь отображения Many to One. Мы возьмем тот же пример, что и для сопоставления многого к одному.
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
}
Это соотношение представлено в базе данных, как показано ниже.
Есть два момента, чтобы помнить о jpa one to many mapping:
- Многосторонняя сторона - это собственная сторона отношений. Столбец определен с этой стороны.
- Отображение от одного к другому - это обратная сторона стороны, поэтому элемент mappedBy должен использоваться на обратной стороне.
Полный пример можно назвать здесь
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow