Junior
104
questionbank

Что такое составной (composite) ключ?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Составной (или композитный) ключ в базе данных — это первичный ключ, состоящий из двух или более столбцов таблицы. Уникальность записи определяется комбинацией значений всех столбцов, входящих в составной ключ.

В Java-приложениях, использующих JPA, составной ключ обычно реализуется одним из двух способов:

  1. Используя @Embeddable и @EmbeddedId:

    Создается отдельный класс, помеченный аннотацией @Embeddable, который инкапсулирует поля, составляющие составной ключ. В сущности этот класс внедряется с помощью аннотации @EmbeddedId. Класс, представляющий составной ключ, должен реализовывать Serializable и переопределять методы equals() и hashCode().

    java
  2. Используя @IdClass:

    Создается отдельный класс, представляющий составной ключ (также реализующий Serializable и переопределяющий equals() и hashCode()), и в сущности указывается имя этого класса с помощью аннотации @IdClass. Поля, входящие в составной ключ, объявляются прямо в сущности и помечаются аннотацией @Id. Имена полей в сущности и классе ключа должны совпадать.

    java