我正在使用休眠并试图代表用户与朋友的关系。我的第一个想法是用一组朋友对象创建一个用户对象。
我想要一个包含所有用户和信息的用户表,例如:
用户表:名字、姓氏等
然后是一个 User_Friend 表来管理关系。就像是:
*User_Friend 表:id,userId,friendId(userId) *
一个用户会有很多friendIds。
我为用户对象创建了一个表和映射:
<id name="id" type="int">
<column name="userId" />
<generator class="native" />
</id>
<set name="friends" table="User_Friend???"
inverse="true" lazy="true" fetch="select">
<key>
<column name="userId" not-null="true" />
</key>
<many-to-many entity-name="Friend">
<column name="friendId" not-null="true" />
</many-to-many>
</set>
<property name="firstName" type="string"></property>
<property name="lastName" type="string"></property>
<property name="email" type="string"></property>
如果我想将朋友信息(如名字、姓氏等)保留在用户表中,并将关系保留在像 User_Friend 这样的表中,我的朋友对象的映射会是什么样子?
我应该把朋友当作本质上的用户吗?如果是这样,我会将上面的 User_Friend 表更改为 User 表吗?
编辑:
我发现了这个指向休眠参考的链接,它解释了一个双向的一对多/多对一与连接表。
这是否允许我在不复制用户表(为朋友)的情况下创建用户到朋友的关系?
谢谢!