《【IT书籍】Hibernate映射》.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《【IT书籍】Hibernate映射》.ppt

Hibernate or/mapping Suns at Beijing.China 双向一对多关系中inverse的作用 在双向的一对多关联中,如果主控方的inverse的属性设置为true那么他将失去主控方的位置,交给被动方去担当这个角色 他的英文直译为反转,在hibernate中,Inverse指定了关联关系中的方向。 在关联关系中,inverse=false的一方为主动方.由他来负责维护关联关系。 而CasCade表明了对象的级联关系,如果他的属性等与 all 那么表明如果主控方的对象发生改变,那么被关联的对象一起发生改变, Inverse是关联关系的控制方向,Cascade 是层级之间的连锁关系, 在one to many 中把many的一方设置为主控方有助改善性能。 减少一倍的SQL操作.对数据库的IO性能有很大的提升,几乎是两倍 Hibernate 数据检索 Criteria Query 面向对象的查询。简单的来讲,她是传统SQL语句的对象化的表示。 她本身只是一个查询容器,具体的查询条件需要通过他的add方法添加到Criteria实例中 其中他的详细用法见/article/72/72097.shtm 在hibernate3中引入了Restrictions来代替Expressin,他的用法和Expression一致,实际上Expression作为Restrictions的一个子类的实现。 由于Creteria不能得到尽量的重用,那么hibernate3 中,提供了,Criteria 的实现,DetachCriteria类,他可以脱离Session独立存在, Hibernate Criteria高级数据检索 通过Criteria 的SetFristResult/setMaxResult方法可以限制一次查询返回的记录范围, Criteria criteria =session.create Criteria (Tuser.class); Criteria. setFristResult(100); Criteria. setMaxResult(20); 记录排序。 使用他的addOrder方法 用法. Criteria.addOrder(Order.asc(“name”)); Criteria.addOrder(Order.desc(“groupId”)); 其他的用法请参阅其他资料。 Hibernate Query Language(HQL) 可以理解为面向对象的查询方法 String hql=“from Tuser”; Query query=session.createQuery(hql); List userList=query.list(); 需要注意的是在hibernate 中,查询的目标实体存在的继承关系的判定,如果你的Tuser有两个子类的实现,那么在查询过程中,会把子类的数据一起查询出来,即使他们不在同一张表上, Hibernate 延迟加载 数据加载方式。 1:即时加载,当实体加载完成以后,立即加载所关联的数据, 2:延迟加载,实体加载时,和他关联的数据不会被立刻加载,而是关联的数据第一次被访问的时候,再进行读取. 3:预先加载,实体和关联对象一起被加载,不过这个加载是通过执行一条(1条SQL)来完成,基于外连接outer join同时读取. 4:批量加载,对于即时加载和延迟加载,可以使用批量加载的方式在性能上的优化。 延迟加载: 在主控方,也就是set的一方设置lazy=ture表明是延迟加载(懒汉式加载) Hibernate 3 sql查询 由于HQL语句不能函盖所有查询特性,我们不得不使用,原生的SQL语句和存储过程来达到我们预期的效果, 与Criteria和HQL互为补充,hibernate 也提供了对SQL和存储过程的支持, 在hibernate 中,如果需要调用存储过程,还得必须调用底层的JDBC的API来实现, 在对应的XML文件中如下配置.(查询,mysql) sql-query name=getUserList callable=true return alias=user class=User return-property name=userid column=userid/ return-property name=name column=name/ return-property name=blog column=blog / /return {call getUserList()} /sql-query Hibernate 3 sql查询 由于HQL语句不能函盖所有查询特性,我们不得不使用,原生的SQL语句和存储过程来

文档评论(0)

wyth + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档