Hibernater 一级缓存:
Hibernate 一级缓存生命周期很短,和session什么周期一致。所以称事务级缓存。
get() load() interate()均支持一级缓存,
注意:interate()只有在查询实体对象才支持,普通属性查询不支持。
session管理只能通过session.clear(), session.evict() 清除。
避免一次性导入大量数据,会每导入一条就在session中保留一条,最终引起内存溢出。
eg:
for(int i =0; i<100000;i++){
Object o = new Object();
session.save(o);
if(i % 100==0){
session.flush();
session.clear();
}
}
如上所示阶段性的清理一级session缓存,防止大量积压一级缓存而导致内存溢出
Hibernate 一级缓存生命周期很短,和session什么周期一致。所以称事务级缓存。
get() load() interate()均支持一级缓存,
注意:interate()只有在查询实体对象才支持,普通属性查询不支持。
session管理只能通过session.clear(), session.evict() 清除。
避免一次性导入大量数据,会每导入一条就在session中保留一条,最终引起内存溢出。
eg:
for(int i =0; i<100000;i++){
Object o = new Object();
session.save(o);
if(i % 100==0){
session.flush();
session.clear();
}
}
如上所示阶段性的清理一级session缓存,防止大量积压一级缓存而导致内存溢出