情况是这样的:
我在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();