Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有多个实体的Spring数据jpa未回滚-PostgreSQL_Java_Spring_Postgresql_Transactions_Spring Data Jpa - Fatal编程技术网

Java 具有多个实体的Spring数据jpa未回滚-PostgreSQL

Java 具有多个实体的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

我正在我的一个项目中使用SpringDataJPA。在服务层,我用@Transactional注释了一个私有方法,并在应用程序中启用了@EnableTransactionManagement。当实体的某个save方法引发异常时,之前保存的其余实体不会回滚。顺便说一句,我正在使用PostgreSQL


请告诉我这里是否缺少任何内容。

默认情况下,Spring将仅在运行时异常时回滚

如果要回滚任何异常,可以尝试添加:

@Transactional(rollbackFor = Exception.class)

Spring事务将仅使用公共方法。因为它需要使用代理类为事务注入代码。因此,公开您的方法将解决您的问题。查看文档。

私有方法表明最有可能发生这种情况。请注意,该解决方案已有十年的历史,在细节上已经过时,但原理是一样的。@chrylis正在将该方法更改为公共工作方法。谢谢