Hibernate自我连接使用ID的自我设置进行多对多映射

时间:2019-03-28 14:10:14

标签: java hibernate hibernate-mapping

我正在尝试使用一组长ID(自身ID)创建新的休眠自我多对多映射,正确的映射是什么?

我试图在Person和他的朋友之间创建一个映射(Persons偏离路线) 我有一个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>();
}

休眠 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

我想使用一组Person ID:

    Set<Long> friendsIds

这样,我将无法在内存中保存整个Person对象(同样很大)。

休眠xml映射:

预期结果是到朋友的映射表personId(tbl_person的外键)(tbl_person的外键) 该表的ID是两列的组合。

tbl_friends

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

谢谢。

0 个答案:

没有答案