Connection is read-only. Queries leading to data modification are not allowed
2015-09-02 09:54
579 查看
详细错误:
Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1552)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:93)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:56)
出现这个错误的原因是在spring的事务中把某个方法设置为read-only模式,但是在方法中却试图修改数据库,比如进行了save操作,如下面这个“get*”表示在service层以get开头的方法都是只读的,不能修改数据库,完整事务配置如下:
Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1552)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:93)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:56)
出现这个错误的原因是在spring的事务中把某个方法设置为read-only模式,但是在方法中却试图修改数据库,比如进行了save操作,如下面这个“get*”表示在service层以get开头的方法都是只读的,不能修改数据库,完整事务配置如下:
[code] <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config> <aop:pointcut id="bussinessService" expression="execution(public * com.coder.service..*.*(..))" /> <aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice" /> </aop:config> <aop:aspectj-autoproxy proxy-target-class="true"/> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="list*" read-only="true" /> <tx:method name="find*" read-only="true" /> <tx:method name="get*" read-only="true" /> <tx:method name="check*" read-only="true" /> <tx:method name="query*" read-only="true" /> <tx:method name="delete*" propagation="REQUIRED" rollback-for="com.coder.zexception.ServerErrorException;" /> <tx:method name="update*" propagation="REQUIRED" rollback-for="com.coder.zexception.ServerErrorException;" /> <tx:method name="create*" propagation="REQUIRED" rollback-for="com.coder.zexception.ServerErrorException;" /> <tx:method name="save*" propagation="REQUIRED" rollback-for="com.coder.zexception.ServerErrorException;" /> <tx:method name="cancel*" propagation="REQUIRED" rollback-for="com.coder.zexception.ServerErrorException;" /> </tx:attributes> </tx:advice>
相关文章推荐
- How to quickly install git on ret hat
- EasyUI使用ajax实时验证是否已经存在(多参数验证)
- NGUI中深度depth和z轴关系
- ue4和u3d术语对照
- HDU 5301 Buildings(机智)
- HDU 5288 OO’s Sequence(数论)
- iOS学习总结之多线程编程NSOperation & NSOperationQueue
- Code Forces 559 B. Equivalent Strings(递归)
- UESTC 250 windy数(数位DP)
- UI中多线程的创建以及定时器与图片的异步加载
- UI中多线程的创建以及定时器与图片的异步加载
- 11.2.0.4 Patch Set - Availability and Known Issues (Doc ID 1562139.1)
- UI初级第十课  滑动视图基本概念和用法——iOS学习连载25
- UI初级第九课  手势与触摸——iOS学习连载24
- UITabBarController中自定义UITabBar
- [Leetcode]#60 Permutation Sequence
- LeetCode_DP_Unique Binary Search Trees II
- key对应VALUE
- usaco Sorting a Three-Valued Sequence
- hdu5412CRB and Queries