RollbackException:事务标记为rollbackOnly,尽管将其设置为norollbackfor

时间:2018-11-24 09:14:59

标签: java spring hibernate transactions

我有这种方法

@Component
public class Services implements Serializable {

  @Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = Exception.class, timeout = -1)
  public void method() {

   try {
      addBean(bean1);
    } catch (Exception e) {
      e.printStackTrace();
    }

    addBeans(List<Beans); // Adds Lists of beans
    editBean(bean1); // Edit first bean "bean1"
  }
}

但是我总是得到org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly ...我尝试了很多但从未达到的任何帮助?

1 个答案:

答案 0 :(得分:0)

RollbackException是RuntimeException,因此不是派生自Exception。但我怀疑RuntimeException的norollback不会有所帮助,因为原因可能是其他原因。可能是超时,乐观锁定问题,唯一标识重复,...可能发生回滚的原因很多,与引发异常无关。