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中有比较好的解决办法。只需要用一个注解就可以搞定!