【发布时间】:2017-01-02 07:03:12
【问题描述】:
JavaDoc 读取
配置是否为 Spring Data JPA 存储库启用默认事务。默认为真。如果禁用,则必须在配置事务的外观后面使用存储库(例如,使用 Spring 的注释驱动事务工具),或者必须使用存储库方法来划分事务。
我调试到框架中,如果不存在,它只会创建一个事务,即使 enableDefaultTransactions = false。
据我所知,Spring Data JPA Repositories 预先配置了 @Transactional(readOnly=true)(请参阅 SimpleJpaRepository),这导致没有人注意到程序员何时忘记正确注释他的服务或工作@Transactional 因为 Spring Data JPA 为每个被调用的存储库方法创建一个事务。
我想禁用它。第一次尝试是在我的存储库超级界面上放置一个@Transactional(MANDATORY)。那行不通。
然后我注意到@EnableJpaRepositories 注释中的“enableDefaultTransactions”。我将其设置为 false,但没有任何改变。 JavaDoc 让我相信它会做我想做的事:删除默认事务支持并在使用存储库时抛出异常,而无需处于事务上下文中。
我错了吗?这是一个错误吗? enableDefaultTransactions 是否还有其他用途?
使用spring data jpa 1.9.0.RELEASE.
【问题讨论】:
标签: spring-data spring-data-jpa