Каким образом создается составной первичный ключ в Hibernate?

В Hibernate составной первичный ключ создается с помощью аннотации @Embeddable для класса, описывающего ключ, и @EmbeddedId в сущности.

Короткий ответ

Что ответить на собеседовании

В Hibernate составной первичный ключ создается с помощью аннотации @Embeddable для класса, описывающего ключ, и @EmbeddedId в сущности.

Подробный разбор

Ответ с пояснениями

В Hibernate составной первичный ключ создается с помощью аннотации @Embeddable для класса, описывающего ключ, и @EmbeddedId в сущности.

Пример:

@Embeddable
public class OrderId implements Serializable {
    private Long orderId;
    private Long productId;

    // конструкторы, геттеры, сеттеры, equals и hashCode
}

@Entity
public class Order {
    @EmbeddedId
    private OrderId id;

    private int quantity;

    // остальные поля, геттеры, сеттеры
}

Таким образом, класс с составным ключом должен быть сериализуемым и переопределять equals и hashCode. В сущности используется поле с аннотацией @EmbeddedId.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее