我们在项目中使用Spring和hibernate,我注意到我们在sprint上下文文件中定义了<tx:annotation-driven />
,如果我为方法添加了@Transactional
注释,我就可以与数据库成功交互,但是如果删除了@Transactional
注释从方法中我得到异常说明"No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here"
有什么办法可以将所有选择操作定义为非Transactional(我的意思是没有@Transactional
注释)并更新和插入为Transactional
最佳答案
对于仅选择操作,通常最好使用@Transactional(readOnly=true)
。当需要多个选择语句来完成一个操作时,在自动提交模式下使用休眠模式可能会很浪费。
关于java - Spring /hibernate 交易,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23329470/