Поиск…


параметры

аннотирование Цель
@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