Hibernate org.springframework.transaction.UnexpectedRollbackException:JTA事务意外回滚(可能是由于超时);嵌套异常

Hibernate org.springframework.transaction.UnexpectedRollbackException:JTA事务意外回滚(可能是由于超时);嵌套异常,hibernate,Hibernate,我有一个带有weblayer(控制器)、应用程序层和服务层的API。 事务在应用程序层@Transactional中启动(readOnly=false)。 当调用API时,它在DB中添加一行(传播=需要新的),并在执行结束时更新(传播=需要新的)相同的条目。 更新时,我收到一个持久性错误(故意),我将其捕获并转换为响应。 调试后,我看到响应在服务层中正确形成,并发送回应用层。 但当从服务返回响应到web层时,它抛出了“org.springframework.transaction.Unexpec

我有一个带有weblayer(控制器)、应用程序层和服务层的API。 事务在应用程序层@Transactional中启动(readOnly=false)。 当调用API时,它在DB中添加一行(传播=需要新的),并在执行结束时更新(传播=需要新的)相同的条目。 更新时,我收到一个持久性错误(故意),我将其捕获并转换为响应。 调试后,我看到响应在服务层中正确形成,并发送回应用层。 但当从服务返回响应到web层时,它抛出了“org.springframework.transaction.UnexpectedRollbackException”。如果需要任何进一步的输入,请告诉我


注意:除了“@Transactional(readOnly=false)”注释外,应用程序没有任何实现,我只是通过应用程序层将响应从服务层返回到web层。

您是指
javax.persistence.PersistenceException
中的持久性错误吗?您是否正在原始
@Transactional(readOnly=false)
事务中捕获
PersistenceException
?如果是这样,请尝试在“更新”事务中捕获它,并将其作为另一个已检查的事务重新抛出exception@crizzis感谢您的回复,早些时候我捕获了PersistenceException并将其作为hibernate异常抛出,但没有成功。根据您的建议,我捕获了异常并将其作为SQLException(选中的异常)抛出,它不工作。仍然可以看到未接受的回滚异常您是说javax.persistence.PersistenceException中的持久性错误吗?您是否正在原始
@Transactional(readOnly=false)
事务中捕获
PersistenceException
?如果是这样,请尝试在“更新”事务中捕获它,并将其作为另一个已检查的事务重新抛出exception@crizzis感谢您的回复,早些时候我捕获了PersistenceException并将其作为hibernate异常抛出,但没有成功。根据您的建议,我捕获了异常并将其作为SQLException(选中的异常)抛出,它不工作。仍然可以看到未接受的回滚异常