【发布时间】:2011-02-24 16:49:17
【问题描述】:
注释@Transactional 有问题。
我有一个方法可以做一些事情,在里面我抛出并捕获一个IllegalArgumentException。
我认为(即使我已经捕获了异常)它将事务设置为 rollbackOnly(在抛出异常时会触发一些触发器)并且它在没有成功提交事务的情况下结束。
这是错误:
org.springframework.transaction.TransactionSystemException : Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
我可以在 @Transactional 上添加一个 no-rollback-for 我抛出和捕获的异常,但我不认为这是一个真正的解决方案。
也许有一种方法可以取消设置事务上的 rollbackOnly,但我认为这也不是最佳做法......
那么,你知道我该怎么做吗?
谢谢,
【问题讨论】: