Назад к вопросам
Северсталь-Ифоком
Junior — Middle
105
Применяли ли вы составные ключи при работе с Hibernate?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Hibernate составные ключи (composite keys) используются для идентификации сущности с помощью нескольких полей вместо одного. Это бывает необходимо, когда уникальный идентификатор объекта формируется из комбинации нескольких атрибутов.
Для реализации составного ключа в Hibernate обычно создают отдельный класс, который реализует Serializable и содержит все поля ключа. Этот класс используется с аннотацией @Embeddable или как @IdClass.
Пример с использованием @Embeddable:
@Embeddable
public class OrderItemId implements Serializable {
private Long orderId;
private Long productId;
// конструкторы, equals, hashCode
}
@Entity
public class OrderItem {
@EmbeddedId
private OrderItemId id;
private int quantity;
// другие поля и методы
}
Таким образом, Hibernate понимает, что идентификатор сущности состоит из нескольких полей, и корректно работает с ними при сохранении и поиске.