当我们将hibernate.transaction.auto_close_session设置为true时,它抛出java.lang.IllegalStateException:Session/EntityManager已关闭。
我们正在使用hibernate 5.3.18.Final和spring 5.3.28版本。
当我们将hibernate.transaction.auto_close_session设置为false时,看不到上面的错误。然而,我们希望这个属性在我们的代码库中是真的。
请确认上述错误在哪个版本的hibernate中得到解决?还是可以忽略上述错误?
提前感谢。
1条答案
按热度按时间stszievb1#
将
hibernate.transaction.auto_close_session
设置为true意味着会话将在事务完成时自动关闭。如果会话已经关闭,然后调用
EntityManager#close()
或Session#close()
,它将抛出IllegalStateException
。这没有什么害处,所以你可以简单地尝试捕捉它,让代码继续运行,而不是被它打断。但更好的方法是在调用
EntityManager#close()
或Session#close()
之前使用EntityManager#isOpen()
或Session#isOpen()
检查会话是否已经关闭。例如:
字符串