Рубрики
Без рубрики

@JoinColumn Аннотация Разъяснения

Узнайте, что такое @JoinColumn аннотация JPA

Автор оригинала: baeldung.

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 List emails;
}

@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 .