1. Введение
Аннотация javax.persistence.JoinColumn отмечает столбец в качестве столбца присоединения для ассоциации сущности или коллекции элементов.
В этом быстром учебнике мы покажем несколько примеров основных @JoinColumn употребление.
2. @OneToOne Пример картирования
@JoinColumn аннотация в сочетании с @OneToOne отображение указывает на то, что данный столбец в сущности владельца относится к основному ключу в сущности ссылки:
@Entity public class Office { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "addressId") private Address address; }
Приведенный выше пример кода создаст иностранный ключ, связывающий Офисный сущность с основным ключом от Адрес сущность. Название колонки с иностранным ключом в Офисный сущность указана имя свойство.
3. @OneToMany Пример картирования
При использовании @OneToMany отображение мы можем использовать отображено параметр, указывающий на то, что данный столбец принадлежит другому объекту.
@Entity public class Employee { @Id private Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "employee") private Listemails; } @Entity public class Email { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "employee_id") private Employee employee; }
В приведеном выше примере Электронная (сущность владельца) имеет столбец присоединения employee_id который хранит значение id и имеет иностранный ключ к Сотрудник сущность.
4. @JoinColumns
В ситуациях, когда мы хотим создать несколько столбцов присоединения, мы можем использовать @JoinColumns аннотация:
@Entity public class Office { @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(name="ADDR_ID", referencedColumnName="ID"), @JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP") }) private Address address; }
Приведенная выше пример создаст два иностранных ключа, указывающих на Идентификационный и Почтовые колонны в Адрес сущность:
5. Заключение
В этой статье мы узнали, как использовать @JoinColumn аннотация. Мы показали примеры создания единой ассоциации сущности и коллекции элементов.
Как всегда, весь исходный код доступен более на GitHub .