注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Lable

........................................

 
 
 

日志

 
 

2_Hibernate关联映射  

2011-11-16 15:59:31|  分类: Hibernate |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      一、优化Hibernate

    对于前一章的Hibernate进行优化

1、  创建HibernateUtil工具类,在工具类中,创建一个SessionFactory对象即可

2、  在工具类中创建openSession()静态方法,方便调用

二、单向多对一关联

    1、解释:实体之间的关联关系在数据库中以外键的形式体现

    2、进行配置:

        1)在“一方“中进行配置

          Bean:根据数据表中的字段设置对应类型的属性

      映射文件:和之前设置的一样

        2)在“多方“中进行配置

          Bean:将外键对应的属性设置成相对应的实体类型

      映射文件:设置类型为实体类型的属性:

                <mang-to-one name=”属性名” class=”一方对应的实体类包路径” column=”该属性对应的数据库中的外键名” />

       3)在Hibernate_cfg_xml 中增加配置

          <mapping resource=”映射文件的路径” />

三、单向一对多关联

    1、解释:将多对一反过来看

    2、进行配置

        1)在“一方“中进行配置

            Bean:多增加一个Set类型的属性,存放对应的多方

        映射文件:<set name=”Set类型的属性名” table=”多方对应的数据库表名”>

                    <!—设置关联字段 à

                    <key>

                        <column name=”多方对应数据表中的外键”/>

                  </key>

<!—设置关联的对象-->

<one-to-mang class=”多方的实体类包名”/>

                  </set>

四、双向一对多关联

    同时配置了单向多对一和单向一对多,就成了双向一对多关系

五、cascade 和 inverse

    cascade:

    执行关联操作,比如:删除具有外键关系的数据时,设置它的值为delete,则执行时,程序会先删除外键信息,然后再删除本条信息,如果不设置,则会向将关联表的外键设置成null

    其值:all,delete,save-update,none

    inverse:

    inverse的默认值为 false;false表示主动负责维护,true 表示由对方负责维护关联关系

    反转关联关系:比如:由“一方“维护关系时,当同时向一方的表中插入数据和向多方的表中插入相关联的信息时,插入成功后,总是会再更新插入到多方的信息;当由多方维护关系时,将不会更新多方新插入的数据

六、配置多对多关联

    1、解释:数据库中的两张表之间的关系时多对多

    2、在数据库中需要额外创建一个关联表,关联表中有另外两张表中的主键,此关联表不需额外设置外键了,只有另外两张表中的主键即可

    3、Bean:两张表对应的实体都额外增加Set类型的属性,用于存放相关联表的集合

    4、两个实体类的映射文件都设置<set>元素信息

        <set name=”Set类型的属性名” table=”关联表名”>

            <key column=”关联表中的此实体类的字段名”/>

            <mang-to-mang class=”对方的实体类路径(使用.分割)column=”对方表的主键id”/ >

        </set>

  评论这张
 
阅读(13)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017