最近在整理hibernate的性能优化时,碰到了session的问题。
有几个问题不解,想在此请教一下各位高手们。
1、hibernate官网中介绍了一种threadlocal模式对session进行管理,本人也在filter中设置了这种功能,的确自己创建的session确实达到了与线程绑定的功能,但是对于DAO这一层(与SPRING整合)在使用getHibernateTemplate的回调函数中的session却无法达到该目的,也即getHibernateTemplate每次都创建了一个新的session,具体代码如下:
fruitDAO.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session){
System.out.println(session.hashCode());
return null;
}
});
每次打出来的hashCode都不一样。
2、hibernate对于频繁创建关闭session的代价到底有多少,在系统中配置了连接池,session在关闭时是否对hibernate的数据库连接有影响。
谢谢各位了。