hibernate一对多双向和多对一双向是一样的。
这个在代码中的表现有点意思,在多的一方设置多方的属性,在一的那方设置多的属性,也就是在user中设置group属性,在group中设置user的集合。
最后在配置文件中需要注意点的就是:
user.hbm.xml:
Xml代码
1. <class name="User" table="_user">
2. <id name="id">
3. <generator class="native"/>
4. </id>
5. <property name="useName"/>
6. <property name="date"/>
7. <many-to-one name="Group" column="groupId"/>
8. </class>
<class name="User" table="_user">
<id name="id">
<generator class="native"/>
</id>
<property name="useName"/>
<property name="date"/>
<many-to-one name="Group" column="groupId"/>
</class>
group.hbm.xml:
Xml代码
1. <class name="Group" table="_group">
2. <id name="id">
3. <generator class="native"/>
4. </id>
5. <property name="address"/>
6. <set name="users">
7. <key column="groupId"></key>
8. <one-to-many class="com.anryn.User"/>
9. </set>
10.
11. </class>
<class name="Group" table="_group">
<id name="id">
<generator class="native"/>
</id>
<property name="address"/>
<set name="users">
<key column="groupId"></key>
<one-to-many class="com.anryn.User"/>
</set>
</class>
以上两个配置文件中的group那个引用建最好是一样的,此处是groupId,当然如果设置不同也不会出错,但是会出现冗余字段,导致在_user中出现两个引用group的字段。
不过好像在annotation中有比较好的解决办法。只需要用一个注解就可以搞定!