gpt4 book ai didi

Spring 数据 jpa @transactional

转载 作者:IT老高 更新时间:2023-10-28 13:48:20 26 4
gpt4 key购买 nike

下面是我的申请流程

Controller - 服务 - 存储库

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

我的怀疑是我觉得jpa:repositories中指定的txn manager被考虑了,在服务层指定@Transactional没有影响。例如:服务层 @Transactional 可以映射到自定义 txn 管理器,因为服务调用的存储库可能有不同的 txn 管理器。那样会不会有问题?

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

最佳答案

参见 Spring Data Reference 的第 2.3 节:

http://docs.spring.io/spring-data/jpa/docs/1.0.0.M1/reference/html/#transactions

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

The transaction configuration at the repositories will be neglected then as the outer transaction configuration determines the actual one used.

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

关于 Spring 数据 jpa @transactional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com