小编典典

Spring数据JPA @Transactional

spring

以下是我的申请流程

控制器-服务-存储库

在服务层,我们具有@Transactional注释。我们还具有jpa:repository配置,在其中指定实体管理器和txn管理器。

我的怀疑是我认为考虑了在其中指定的txn管理器,jpa:repositories并且@Transactional在服务层进行指定没有影响。例如:服务层@Transactional可以映射到自定义的txn管理器,其中服务调用的存储库可能具有不同的txn管理器。在那种情况下会不会造成问题?

有人可以澄清一下,@Transactional在使用jpa存储库时是否需要将其放置在服务层上?


阅读 685

收藏
2020-04-20

共1个答案

小编典典

默认情况下,存储库上的CRUD方法是事务性的。虽然可以根据需要配置这些事务,但是通常,如上面的注释中所建议的,在服务层指定事务,在这种情况下:

存储库中的事务配置将被忽略,然后由外部事务配置确定实际使用的事务配置。

因此,为回答你的问题,可以(并且应该)在服务级别指定事务,而不管任何Spring Data事务管理如何。

2020-04-20