Как описать составной ключ при использовании Hibernate?



На всякий случай: составной ключ — первичный ключ, состоящий из двух и более атрибутов.



Чтобы описать составной ключ при использовании Hibernate, нам необходимо создать под этот ключ отдельный класс с необходимыми полями и добавить ему аннотацию
@Embeddable. Кроме того, он должен быть Serializable и иметь реализацию equals и hashcode.



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