Вопрос о Hibernate Mapping (один-ко-многим) - PullRequest
0 голосов
/ 18 января 2011

На моем пути изучения Hibernate я поражен, поэтому вам нужно ваше предложение. У меня есть три класса A, B, C и есть родительский класс. Эти три класса представляют только три аспекта, но в базовой базе данных они сопоставлены с одной и той же таблицей.

В моем родительском классе у меня есть ссылки на эти три класса как

private Set<A> airTransport =new HashSet<A>();
    private Set<B> roadTransport=new HashSet<B>();
    private Set<C> trainTransport=new HashSet<C>();

и в родительском файле hbm я сопоставил их как

 <set name="A" table="Test" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="A" />
        </set>
        <set name="B" table="TEST" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="B" />
        </set>
        <set name="C" table="TEST" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="C" />
        </set>

У меня также есть еще один класс, который я отобразил как составной элемент внутри трех классов A, B и C

в моей базе данных у меня есть три записи в тестовой таблице, одна для класса A, одна для класса B и последняя для класса C моя структура таблицы

UUID
PARENTID
Other Fields

когда я извлек свой объект ParentClass и проверил размер Set, он дает мне следующие цифры набор для класса А имеет 3 элемента в то время как наборы классов B и C имеют по 1 элементу каждый, и это создает проблемы при удалении объекта.

Я не понимаю, почему это так. любая идея / предложение в этом отношении будет полезным

1 Ответ

0 голосов
/ 18 января 2011

Вы можете использовать атрибут 'where' в элементе set xml. Вам понадобится какой-то способ определить, какие строки должны быть в каждом наборе. Увидеть http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html

пример 7,6

...