周·煜 2010-08-06 16:45
浏览 265
已采纳

【spring + hibernate】 事物无法回滚问题

事物配置:
Java代码

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
   <property name="sessionFactory">   
    <ref bean="sessionFactory"/>   
   </property>   
</bean>   

<!--事物的传播特性  -->   
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">   
   <tx:attributes>   
        <tx:method name="save*"   />   
        <tx:method name="*" read-only="true"  />   
       </tx:attributes>   
    </tx:advice>   
<aop:config>   
  <aop:pointcut id="transactionOperation" expression="execution(* com.base.service..*.*(..))" />   
  <aop:advisor  advice-ref="transactionAdvice" pointcut-ref="transactionOperation" />   
</aop:config>  
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
   <property name="sessionFactory">
    <ref bean="sessionFactory"/>
   </property>
</bean>

<!--事物的传播特性  -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
   <tx:attributes>
        <tx:method name="save*"   />
        <tx:method name="*" read-only="true"  />
       </tx:attributes>
    </tx:advice>
<aop:config>
  <aop:pointcut id="transactionOperation" expression="execution(* com.base.service..*.*(..))" />
  <aop:advisor  advice-ref="transactionAdvice" pointcut-ref="transactionOperation" />
</aop:config>

Java代码
server 层为事物边界

public void saveGame(GameClassEntity o) {

this.GameDao.saveGame(o);

}

server 层为事物边界

public void saveGame(GameClassEntity o) {
this.GameDao.saveGame(o);
}

Dao 层的方法 不管你抛什么异常 打死也不回滚! 极度郁闷ing

Java代码
public void saveGame(GameClassEntity o){

this.save(o);

throw new RuntimeException("测试异常");

}

public void saveGame(GameClassEntity o){
    this.save(o);
         throw new RuntimeException("测试异常");
}

希望路过者指点一二!!!

  • 写回答

2条回答 默认 最新

  • oyj7454103 2010-08-06 17:08
    关注

    [quote]您的
    没有定义事务异常,改成
    当抛出此异常回滚。[/quote]

    不对! spring 默认 RuntimeException 会回滚的 :wink:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证