我正在使用 Spring 3.1 开发 Hibernate4 示例。
在我的示例中,当我打印 sessionFactory.getCurrentSession().isOpen()
时在控制台上打印
true
但是我遇到了异常
sessionFactory.getCurrentSession().isConnected()
异常(exception)是:
org.hibernate.HibernateException: isConnected is not valid without active transaction
编辑:我用谷歌搜索了更多内容并找到了以下解决方案
sessionFactory.getCurrentSession().beginTransaction();
sessionFactory.getCurrentSession().isConnected()
但我不想每次使用像 isConnected
这样的 session 方法进行操作时手动编写开始事务, get
, find
, save
等等
- 针对上述异常,还有哪些其他可能的解决方案?
- 如果我放置
@Transactional
会怎么样?在我的 dao 类方法上?
问候,
阿伦·库马尔
最佳答案
isConnected 很少使用,对于普通的 DAO 方法来说也不需要它。如果需要的话,获取/查找/保存将在幕后打开连接和事务,您无需手动处理任何事情。
关于spring - session.isOpen() 与 session.isConnected(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006908/