Java 具有多个实体的Spring数据jpa未回滚-PostgreSQL
我正在我的一个项目中使用SpringDataJPA。在服务层,我用@Transactional注释了一个私有方法,并在应用程序中启用了@EnableTransactionManagement。当实体的某个save方法引发异常时,之前保存的其余实体不会回滚。顺便说一句,我正在使用PostgreSQLJava 具有多个实体的Spring数据jpa未回滚-PostgreSQL,java,spring,postgresql,transactions,spring-data-jpa,Java,Spring,Postgresql,Transactions,Spring Data Jpa,我正在我的一个项目中使用SpringDataJPA。在服务层,我用@Transactional注释了一个私有方法,并在应用程序中启用了@EnableTransactionManagement。当实体的某个save方法引发异常时,之前保存的其余实体不会回滚。顺便说一句,我正在使用PostgreSQL 请告诉我这里是否缺少任何内容。默认情况下,Spring将仅在运行时异常时回滚 如果要回滚任何异常,可以尝试添加: @Transactional(rollbackFor = Exception.clas
请告诉我这里是否缺少任何内容。默认情况下,Spring将仅在运行时异常时回滚 如果要回滚任何异常,可以尝试添加:
@Transactional(rollbackFor = Exception.class)
Spring事务将仅使用公共方法。因为它需要使用代理类为事务注入代码。因此,公开您的方法将解决您的问题。查看文档。私有方法表明最有可能发生这种情况。请注意,该解决方案已有十年的历史,在细节上已经过时,但原理是一样的。@chrylis正在将该方法更改为公共工作方法。谢谢