0 0

JPA事务0

这里先简要描述下场景:spring + hibernate

XXXService的一个updateXXX方法:

@Transational(rollbackFor = Exception.class)
public void updateXXX() {

     1. 先从数据库查出这个对象,若存在,则执行一些setXXX的操作
     2. 调用XXXDAO.update(对象) ;
     3. 调用另一个类(消息推送)的push方法,该方法需要从数据库查询出刚才                更新的数据,推送给其他系统。

     4. 记录日志等操作。

}

消息推送的push方法我加了@Transational( propagation=Propagation.REQUIRED)
该方法从数据库从新查了上面更新的对象,根据需求组成消息。

问题有两个:
1. updateXXX方法执行到 3 时,事务是不会提交的,但是消息推送push方法里确实已经获取到了更新后的值,这也就是说update操作已经更新到数据库

2. 我在记录日志的时候,报错了,但是2数据没有回滚,后台报错,但是页面却显示已修改后的值
2013年7月09日 23:04

1个答案 按时间排序 按投票排序

0 0

1、使用我写的工具类判断下是否事务支持
http://jinnianshilongnian.iteye.com/blog/1901156

2、如果是mysql,确保引擎不是MyISAM

2013年7月10日 06:23

相关推荐

Global site tag (gtag.js) - Google Analytics