@Transactional 新增记录失败

情况是这样的:

我在add方法中,还有一个updateBalance减库存方法。

serviceImpl是这样的

//尽量简单演示
 
//新增
@Transactional
    @Override
    public T add() {
        
    }
 
//减库存
@Transactional
    @Override
    public T updateBalance() {
        
    }
 
 
//调用上面2个方法
@Transactional
    @Override
    public T addOrEditFull() {
        add()
        updateBalance()
}

 

但是我发现,库存是减了,可add的表信息没有增加。

然后发现Dao的原因:

不能使用@Modifying(clearAutomatically = true),而是直接@Modifying

@Transactional
    //@Modifying(clearAutomatically = true)
@Modifying
    @Query(value="update.....",nativeQuery = true)
    Integer updateBalance();

 

顺带一提:手动回滚事务

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

 

posted @ 2020-09-30 13:56  正怒月神  阅读(252)  评论(0编辑  收藏  举报