标签:
研究通过一的一方怎么样发出sql语句加载多的一方。针对的是set集合。
策略为:先加载classes表中的数据,再根据每一个cid去student表中加载。所以
如果含有子查询,这种策略会造成n+1条sql语句
hibernate底层会生成子查询,所以如果需求分析中含有子查询的sql语句,用这种策略
效率比较高。
左外连接,一次性把classes和student的数据提取出来,但是如果含有子查询,
则该策略失效。
该策略是在映射文件中通过set元素中的fetch属性作用的,一旦映射文件确定了以后就不能修改了。所以抓取策略只不过是hibernate提供的一种优化策略而已。
1、一级缓存通过减少与数据库的交互次数提高效率
2、二级缓存通过把一些常用的不变的对象放入到缓存中提高效率
3、查询缓存通过把数据放入到查询缓存中提高效率
4、延迟加载是通过改变sql语句发出的时间来提高效率的
5、抓取策略是通过发生怎么样的sql语句提高效率的
通过以上的5种方式可以尽量减少发出sql语句的数量,从而提高效率。
标签:
原文地址:http://www.cnblogs.com/jsnan/p/4533331.html