Hibernate @embeddable эквивалент аннотации для файла отображения XML? - PullRequest
6 голосов
/ 21 января 2011

У меня есть класс, в котором я создаю отображение Hibernate, которое содержит устаревший объект, который я не могу изменить, поэтому у него нет необходимого поля id для приятной игры с Hibernate.Я хотел бы аннотировать унаследованный объект как поле @Embedded моего нового класса и написать файл hbm.xml для унаследованного объекта и отметить, что он является встраиваемым.Есть ли способ сделать это?Единственная документация для встраивания объектов, которую я видел, относится к аннотированию объектов вместо использования XML.

Я понимаю, что мог бы расширить устаревший объект и соответствующим образом аннотировать его, но эти случаи могут возникать часто, поэтому я хотел бычтобы избежать этого, если это возможно.

1 Ответ

10 голосов
/ 21 января 2011

XML-аналогом @Embedded является <component>, см. 5.1.5. Внедренные объекты (или компоненты) .

Однако, это не работает так же, как пара @Embeddable / @Embedded, вам нужно описать все свойства класса компонента в .hbm.xml содержащего класса, примерно так:

<class name = "NewClass">
    ...
    <component name = "legacyObject">
        ... properties of the legacy class ...
    </component>
</class>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...