首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

fetch 跟 lazy 配置用于数据的查询

2013-03-28 
fetch 和 lazy 配置用于数据的查询?另外,在hql查询中,配置文件中设置的join方式是不起作用的,而在其他查询

fetch 和 lazy 配置用于数据的查询
?

另外,在hql查询中,配置文件中设置的join方式是不起作用的,而在其他查询方式如get、criteria等是有效的,使用 select方式;除非在hql中指定join fetch某个关联对象。fetch策略用于get/load一个对象时,如何获取非lazy的对象/集合。 这些参数在Query中无效。?

配置还是缺乏灵活性的,开发中常会有不同的需求,所以在配置中选择默认值,在具体业务中来指定策略。再者对数据库的操作都是使用SQL来执行的,掌握了sql执行性能反过来看这些配置也许很容易了。?

我对Hibernate、SQL也都只是了解水平,还需进一步深入学习,以上只是个人的看法。通俗点说:hibernate 配置文件的lazy 和 fetch?

lazy :配置属性是否查询要延迟加载?参数true/false 默认为true 目的是优化hibernate性能?

hibernate是数据库表 映射成 javaPOJO对象 在数据库表为主外键关系时,也就是 1:N 关系 在双向关联的时候 1的对象里面有个set集合存放所有符合1对象外键的N对象 在查询1的一方会同时返回一个N一方set列表 如果是true则推迟加载(在真正访问到set列表里的对象时 才去加载)false则是一次性都加载进来 如果数据量很多会导致session缓存(hibernate一级缓存)过大而导致内存溢出 所以需要进行懒加载设置。?


fetch :是配置hibernate的在查询时的抓取方式 参数select/join?

select:是不级联查询,不查外键表 N+1次查询方式?
join:是级联查询 一条SQL查询返回主外键两张表

热点排行