Hibernate Self Присоединиться к сопоставлению многие ко многим, используя собственный набор идентификаторов - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь создать новое отображение «многие-ко-многим» для себя в спящем состоянии, используя набор длинных идентификаторов (self-id). Какое для него правильное отображение?

Я пытаюсь создать сопоставление между Персоном и его друзьями (Персоны, конечно) У меня есть карта класса Person с таблицей tbl_person.

Person.java

public class Person {
    private Long personId;
    private String name;
    //much more properties in here make this object huge
    private Set<Person> friends= new HashSet<Person>();
}

hibernate Person.hbm.xml отображение:

<set name="friends" table="friends" cascade="none" lazy="false">
    <key column="friend_id"/>
    <many-to-many column="person_id" class="com.kruders.model.bean.Person"/>
</set>

считают, что класс Person чрезвычайно большой. Вместо того, чтобы делать:

    Set<Person> friends

Я хочу использовать набор личных идентификаторов:

    Set<Long> friendsIds

таким образом я не смогу удерживать весь объект Person (опять же, очень большой) в памяти.

Отображение hibernate xml:

Ожидаемые результаты - таблица сопоставления personId (внешний ключ к tbl_person) к другу (внешний ключ к tbl_person) Идентификатор этой таблицы является составной частью обоих столбцов.

tbl_friends

personId|friend
1       |2
1       |3
2       |1

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...