我们在生产日志中看到UnexpectedRollbackExceptions后发现了事务嵌套问题。这是因为我们处理了与@Transactional持久性代码非常接近的特定数据库错误,但是在服务级别进一步向上是另一个错误的@Transactional注释,因为事务被设置为仅回滚(如下所述:http://codetreasury.com/2014/01/25/springs-transactional-important-points/)
我们的测试最初是太低级了,所以我在堆栈中添加了一些来确认我们的修复,但抛出的事务异常是不同的:
在live中我们看到:UnexpectedRollbackException 在JUnit / Spring集成测试中,我们看到:TransactionSystemException
我担心我们的测试与实时代码不一致 - 你能解释为什么异常不同吗?