Spring数据JPA @Transactional
以下是我的申请流程
控制器-服务-存储库
在服务层,我们具有@Transactional
注释。我们还具有jpa:repository
配置,在其中指定实体管理器和txn管理器。
我的怀疑是我认为考虑了在其中指定的txn管理器,jpa:repositories
并且@Transactional
在服务层进行指定没有影响。例如:服务层@Transactional
可以映射到自定义的txn管理器,其中服务调用的存储库可能具有不同的txn管理器。在那种情况下会不会造成问题?
有人可以澄清一下,@Transactional
在使用jpa存储库时是否需要将其放置在服务层上?
回答:
默认情况下,存储库上的CRUD方法是事务性的。虽然可以根据需要配置这些事务,但是通常,如上面的注释中所建议的,在服务层指定事务,在这种情况下:
存储库中的事务配置将被忽略,然后由外部事务配置确定实际使用的事务配置。
因此,为回答你的问题,可以(并且应该)在服务级别指定事务,而不管任何Spring Data事务管理如何。
以上是 Spring数据JPA @Transactional 的全部内容, 来源链接: utcz.com/qa/424327.html