Spring中事务问题

zhuli_java 2012-04-10 08:45:27
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xq30397022 2012-04-12
  • 打赏
  • 举报
回复
受教了,一直没解决的问题,现在明白了~
minxiaohui1 2012-04-12
  • 打赏
  • 举报
回复
乱讲滴,那句话不能去掉!
minxiaohui1 2012-04-12
  • 打赏
  • 举报
回复
<tx:method name="*" read-only="true" />
这句话去掉
zhuli_java 2012-04-10
  • 打赏
  • 举报
回复
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!-- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in
read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly'
marker from transaction definition
<init-param> 是用来解决此注释中的异常的 -->
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
没有加这个
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
现在好了,谢谢回复
昨日凡阳 2012-04-10
  • 打赏
  • 举报
回复
管理session的问题。

添加OpenSessionInView过滤器,让session在一个request周期内关闭。
http://blog.sina.com.cn/s/blog_627efd530100wdi7.html
zhuli_java 2012-04-10
  • 打赏
  • 举报
回复
还是有上述的问题啊?
zhuli_java 2012-04-10
  • 打赏
  • 举报
回复
<!-- 声明式事务处理
事务操作对象 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--
在此配置事务定义,事务定义通常会配置三部分,read-only配置是否是只读事务,不涉及增删改操作的业务层方法都要
配置成只读事务以便延迟加载propagation和isolation用来配置事务传播性和隔离性,其值可参考
TransactionDefinition类的静态变量事务通知
-->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 默认中的设置
传播行为、隔离层级、超时、只读
<tx:method name="addObject" propagation="REQUIRED" isolation="DEFAULT" timeout="-1" read-only="false"/>
-->
<tx:method name="addObject" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="updateObject" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="deleteObject" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<!-- 声明式事务处理通常是针对业务层进行拦截操作的,配置声明式事务处理可以实现事务操作透明化、粗粒度、可配置 -->
<aop:config>
<aop:advisor pointcut="execution(* org.daoImple..*.*(..))" advice-ref="transactionAdvice" />
</aop:config>
m540920181 2012-04-10
  • 打赏
  • 举报
回复
这个要在spring的配置文件中进行操作。事物是否可操作,或者只读的

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧