Можно ли настроить Hibernate для хранения класса компонента в отдельной таблице?Сопоставление компонентов спящего режима с отдельной таблицей
Рассмотрим следующий пример:
<class name="test.ClassA">
<property name="propA"/>
<component name="componentProp" class="test.ClassB">
<property name="propB"/>
</component>
</class>
Это карты в таблицу под названием MyClass
с двумя колоннами propA
и propB
. Я хочу отобразить свойства компонента в таблице ClassB
.
Что я не нужно сделать, это настроить ClassB
как объект сам по себе (это не имеет осмысленного идентичности за пределами ClassA
), так что исключает нормальную связь. Кроме того, я не могу изменить объектную модель (ее сгенерированный код), поэтому я не могу ввести свойство ID в ClassB
.
Это похоже на разрыв в функциональности Hibernate - отображение <> выполняет сопоставление «несколько классов-к-одному» и < join> делает «один-к-нескольким таблицам», но странно нет никакого очевидного способа делать «несколько классов-к-нескольким таблицам», не прибегая к ассоциациям сущностей.
Мое обоснование для этого состоит в том, что я хочу, чтобы моя схема БД была похожа на объектную модель настолько же практичной, что она включала отдельные таблицы для компонента ClassB
. Я понимаю, что это не будет масштабироваться - например, вы не могли бы делать вложенные компоненты, но это не проблема в этой конкретной ситуации.
Ах, это похоже на то, что мне нужно, спасибо за это. Я вытащу ее за спину и посмотрю, это билет. – skaffman
Я нашел этот метод, описанный в разделе 8.1.3 «Сохранение Java с гибернацией». Выглядит. Еще раз спасибо. – skaffman
Спасибо. Мне почему-то не удалось прочитать эту книгу :-) – ChssPly76