`
kidiaoer
  • 浏览: 807538 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

hibernate一对多、多对一双向

阅读更多


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

相关推荐

Global site tag (gtag.js) - Google Analytics