一般来说不需要自己控制session,spring会帮你管理。
如果需要使用session进行flush(),evict操作可以直接获得getSession()
如果想使用hibernate原生的api,需要使用HibernateCallback,它会帮助你控制事务。
如果需要使用session进行flush(),evict操作可以直接获得getSession()
如果想使用hibernate原生的api,需要使用HibernateCallback,它会帮助你控制事务。
解决方案 »
- 关于java socket
- 如何刷新l左页的问题
- 关于java版本的ado.net 数据封装的datatable
- [200分]通过以下DAO操作proxool连接池访问量大的时候,老是有问题?DAO如下:
- JNDI是什么?什么作用呢
- struts文件上传问题
- 使用DataHandler如何返回MIME类型的response?急急急。。。。
- 汉字转换问题!
- 急用,求大神指点!!请问有谁用java做过那个复制、粘贴功能 这类功能的呢?
- ArrayList源代码实现->有的用方法System.arraycopy 有的用Arrays.copyOf,为什么,区别在何处??
- 用axis 2 code generator 生成服务端代码的问题
- build 之后tomcat的问题(问题太诡异,不可思意)
session是hibernate里的一级缓存会话。
我觉得getSession()跟你这个获得的效果应该是一样的。
destroy-method
这个不是管理session的,这个是为了让spring知道,在销毁applicationContext的时候,执行哪个特定方法释放bean中占用的资源的。
小心别用混了。
hibernateTemplate.getSessionFactory().openSession()是spring调用hibernate的API打开了一个session。spring会去管理这个session吗?hibernateTemplate.getSessionFactory().getCurrentSession()貌似是取得了当前的session,DOC是这么说的:
“Obtains the current session. The definition of what exactly "current" means controlled by the CurrentSessionContext impl configured for use.”
这个session是不是一直被spring管理着呢?
session关闭这种事当然不用考虑了。
不需要自己关闭