@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();
原文地址:https://www.cnblogs.com/hanjun0612/p/13754198.html