несколько аннотаций @id в одном объекте

#hibernate #hibernate-annotations

#переход в спящий режим #переход в спящий режим-аннотации

Вопрос:

В чем разница между использованием нескольких @Id в объекте и составным идентификатором?

Кроме того, как работает этот @EmbeddedId, когда фактически нет таблицы, созданной отдельно для внедренного объекта?

Комментарии:

1. Рассматривая этот пример: @Entity class User { @EmbeddedId идентификатор идентификатора пользователя; Целочисленный возраст; } , допустим, я понимаю, что @EmbeddedId идентификатор представления встроенного класса, зачем другая аннотация @EmbeddedId, почему я не могу просто использовать тот же @Id ? есть что-то особенное в этой аннотации?

2. Если я посмотрю на приведенный ниже пример немного глубже, класс User { @EmbeddedId Идентификатор пользователя; Целочисленный возраст; } @Embeddable class userId реализует Serializable { String FirstName; String LastName; } , делает ли это весь идентификатор пользователя в качестве столбца Id во встроенном классе User?

3. также почему у нас несколько @Id в объекте? почему мы не можем использовать вместо этого @IdClass ?

Ответ №1:

Hibernate предлагает различные варианты определения / использования составных идентификаторов. Все эти параметры подробно описаны в справочном руководстве по гибернации:http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#d0e4819 .