Как создать foreign key в hibernate?

Пользователь

от felix , в категории: Java , 2 года назад

Как создать foreign key в hibernate?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , 2 года назад

@felix 

Чтобы создать foreign key в Hibernate, вам нужно будет указать эту связь в аннотации @OneToOne, @OneToMany или @ManyToMany.


Вот пример создания foreign key с использованием аннотации @ManyToOne:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Entity
public class Employee {
    @Id
    @GeneratedValue
    private long id;

    private String name;

    @ManyToOne
    @JoinColumn(name="department_id")
    private Department department;

    // getters and setters...
}

@Entity
public class Department {
    @Id
    @GeneratedValue
    private long id;

    private String name;

    // getters and setters...
}


В этом примере сущность Employee связана с сущностью Department с помощью внешнего ключа department_id. Когда Hibernate создает таблицу для сущности Employee, она также создаст внешний ключ, ссылающийся на таблицу Department.


Примечание: чтобы использовать аннотации JPA, необходимо включить зависимость Hibernate-entitymanager в ваш проект.

Пользователь

от francis_schuster , год назад

@felix 

Для создания foreign key в Hibernate вы можете использовать аннотации @ManyToOne, @OneToMany или @ManyToMany (в зависимости от типа связи) вместе с аннотацией @JoinColumn.


Вот пример создания foreign key с использованием аннотации @ManyToOne:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Entity
public class Order {
    @Id
    @GeneratedValue
    private Long id;

    @ManyToOne
    @JoinColumn(name = "customer_id")
    private Customer customer;

    // getters and setters...
}

@Entity
public class Customer {
    @Id
    @GeneratedValue
    private Long id;

    // other customer properties...

    // getters and setters...
}


В этом примере сущность Order связана с сущностью Customer с помощью внешнего ключа customer_id. При создании таблицы для сущности Order, Hibernate также создаст внешний ключ, связывающий поле customer_id с таблицей Customer.


Обратите внимание, что аннотация @JoinColumn используется для указания имени столбца, который будет содержать значение внешнего ключа.


По умолчанию, Hibernate создает внешний ключ с именем "имя_поля_id" (в данном случае "customer_id"). Однако, вы можете указать свое имя столбца, используя атрибут name аннотации @JoinColumn.


Также помните, что вы должны включить зависимость Hibernate в ваш проект, чтобы использовать аннотации JPA и функциональность Hibernate.