我遇到了hibernate对数据库进行查询的问题.
在进行简单的选择时,这是我的查询日志(使用Mysql 5.1)到数据库:
111125 7:18:30
27 Query SET autocommit=0
27 Query SELECT @@session.tx_isolation
27 Query select this_.id as id34_0_, this_.media_id as media3_34_0_, this_.message as message34_0_, this_.user_id as user4_34_0_ from notifications this_
27 Query rollback
27 Query SET autocommit=1
我已经阅读了很多关于将自动提交设置为0然后再设置为1.我知道连接的默认值是1,并且无法更改此行为.您可以运行SET autocommit = 0但结果是相同的.
反正有没有避免任何这些疑问?我不知道为什么SELECT @@ session.tx_isolation正在发生和回滚.当我使用事务时,我得到一个提交然后回滚.不确定为什么回滚始终是有线的.
非常感谢!
我的conf:
Spring 2.5.6,Hibernate 3.6.0,Mysql 5.1
datasoure.xml:
class="org.apache.commons.dbcp.BasicDataSource">
事务管理器定义:
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
更新:管理通过设置新属性来取消回滚
但现在的问题是你不能修改(无论我是否设置事务注释readOnly = false)给db给出一个SQLException.
此属性将readonly连接设置为true.
我猜测HibernateTemplate无法做到这一点.
我使用aspectj事务进行内码编织.