Hibernate 关联映射

来源:互联网 发布:mac 不能打开u盘 编辑:程序博客网 时间:2024/06/01 09:44
多对一:
many端:
<many-to-one name="对应对象(one端)"  class="类的全限定名(one端)">
                             <column name="one端关联字段名"><column>  //注意是字段不是属性
</many-to-one>
一对多:
one端:
<set name="集合对象(many端)" >
                <key column="many端对应关联字段名"></key>
                <one-to-many  class="many端类的全限定名" ></many-to-one>
</set>
一对一:
many端:
保持多对一 ,加入一个属性 unique="true"
<many-to-one name="对应对象(one端)"  class="类的全限定名(one端)"   unique="true">
                             <column name="one端关联字段名"></column>  //注意是字段不是属性
</many-to-one>
同时给表添加约束唯一:  alter  table  表(many端) add  constraint    约束名称  unique(字段名one端)
one端:
<one-to-one name="对应对象另一端"  class="类的全限定名(l另一端)"/>
多对多:
借助中间表完成
<set  name="另一端集合对象"  table="中间表">
    <key column="中间表关联当前表的字段" />
<many-to-many class="另一端类的全限定名"  column="中间表关联另一端关联字段名"/>
</set>
或者为中间表建立实体类以及映射文件,2个端点和中间段(多)分别建立一对多关联。



注释:inverse属性

               * inverse属性可以用在一对多和多对多双向关联上,inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系,会交给另一端维护关系,本端失效。所以一对多关联映射我们通常在多的一端维护关系,让一的一端失效。

              * inverse是控制方向上的反转,只影响存储






0 0
原创粉丝点击