hibernate映射文件中的fetch 和 lazy 属性配置

浅浅的花香味﹌ 2022-06-01 08:24 291阅读 0赞
  1. fetch lazy 配置用于数据的查询
  2. lazy 参数值常见有 false trueHibernate3 映射文件中默认lazy = true
  3. fetch 指定了关联对象抓取的方式,参数值常见是selectjoin,默认是select, select方式先查询主对象,再根据关联外键,每一个对象发一个select查询,获取关联的对象,形成了n+1次查询;而join方式,是left outer join查询,主对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。
  4. 在映射文件中,不同的组合会使用不同的查询:
  5. 1lazy=true fetch = select ,使用延迟策略,开始只查询出主对象,关联对象不会查询,只有当用到的时候才会发出sql语句去查询
  6. 2lazy=false fetch = select ,没有用延迟策略,同时查询出主对象和关联对象,产生1+nsql.
  7. 3lazy=truelazy=false fetch = join,延迟都不会作用,因为采用的是外连接查询,同时把主对象和关联对象都查询出来了.
  8. 配置还是缺乏灵活性的,开发中常会有不同的需求,所以在配置中选择默认值,在具体业务中来指定策略。再者对数据库的操作都是使用SQL来执行的,掌握了sql执行性能反过来看这些配置也许很容易了。

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Hibernate映射文件

    POJO 类和数据库的映射文件\.hbm.xml   POJO类和关系数据库之间的映射可以用一个XML文档来定义。   通过POJO类的数据库映射文件,Hiberna