Junior — Middle
154
Da li ste koristili složene ključeve prilikom rada sa Hibernate-om?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
В 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 понимает, что идентификатор сущности состоит из нескольких полей, и корректно работает с ними при сохранении и поиске.