#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 .