数据加载 load get list iterator



Hibernate的优化-数据加载


除了对映射文件的配置外,还可以通过选择适合的数据加载方法来优化Hibernate性
能;这里通过get()方式与load()方式比较;list()与iterate()两方面的比
较来说明。API提供的方法get

get():如果当得到的数据为空,那get()将返回null;get()不支持延迟加
载;相当于即时加载数据的方式。

Load():
如果当得到的数据为空,load()就发生异常;load是支持延迟加载的;
这样就可以减少对内存的消耗了;

List():它总是发出一条查询语句,将数据全部获得,它不会到缓存中去读取数据,
但会将数据写入到缓存中去;

iterate():它会先发出一条查询所以“主键id”的查询语句;然后按得到的主键id
到缓存中去找是否有对应的数据,如果有就取出,没有就会发出查询语句去查询
数据库。这样就造成N+1问题;
解决N+1问题
方法1:先使用List集合接受,然后再使用Iterator;
    2:可以配置二级缓存;
    3:联表查询

你可能感兴趣的:(Hibernate)