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