考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > Java语言程序设计 > 考试辅导 > 文章内容
  

全国计算机等级考试二级Java重点内容(55)

中华IT学院   【 】  [ 2016年11月21日 ]

1.在映射对象之间建立一对多关系one-to-many

  1)在一的一方的类中添加集合属性Set

  2)在一的一方的映射文件中添加映射

   

   

  3)使用时,通过对象的getXXX方法获取

 

2.在映射对象之间建立多对一关系many-to-one

   1)在多的一方的类中添加一方类型的属性去掉关联字段的属性

   2)在多的一方的映射文件中添加映射

         column="user_id">

     去掉原有关联字段的映射

   3)使用时,通过对象的getXXX方法获取

 

3.关系使用时的技巧

  1)在hbm.xml中利用fetch属性指定抓取方式

    a.fetch="join"

      采用join表连接方式抓取相关对象.

    b.fetch="select"(默认)

      采用单独发送一个SQL语句的方式查询相关对象.

    注意:在实际开发中,不推荐在hbm.xml中利用fetch属性控制.推荐使用HQL+join fetch方式.参考TestAddress.java的testFetch()方法

   2)cascade级联操作

    对主对象操作时,相关联的对象属性也执行相同操作.

    在hbm.xml中为关联属性添加cascade,可以指定

    cascade="save-update":当对主对象执行save和update操作时,相关联的对象属性也执行save和update操作

    cascade="delete":当对主对象删除时,相关联的对象属性也执行删除

    cascade="all":对save,update,delete操作都支持

   注意:级联删除执行的是n+1个delete语句,如果遇到n比较大时,不推荐使用级联,推荐使用删除的HQL.

      "delete from Address where userId=30"

  3)inverse关系控制

   inverse主要用于指定两个对象的关系由哪一方来负责维护.其实就是使用update语句更新user_id字段的值.默认情况下,Hibernate认为关系维护双方负责.

   为了程序效率,将关系维护工作交给多的一方处理.即在元素中添加inverse="true"

  4)formula子查询映射

    将一个子查询结果,映射到一个属性上.参考User.hbm.xml

分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照