【发布时间】:2017-05-03 16:44:39
【问题描述】:
我在 spring data jpa 中使用 jpatransactionmanager 并且提供者是 Hibernate。
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactoryBean" />
</bean>
我有三个实体,分别是 Aentity、Bentity。 A 和 B 是一对一的关系。还有第三个实体Centity。 Centity 的持久性独立于 Aentity 和 Bentity。但是,我发现每当保存 Centity 时,Aentity 和 Bentity 都会自动刷新到 db。我想控制这种行为,并希望确保当我使用他们的存储库调用 save 时它们应该被持久化。
其他信息: Aentity 为 B 提供了案例。 Centity 的交易信息是:传播:需要新的和隔离=默认
我查看了许多论坛,但找不到提示/解决方案。
【问题讨论】:
-
Hibernate 将托管实体保存在
Session中。Session通过称为刷新的过程与数据库同步。当Session被刷新时,由Session上的flushing strategy 控制。默认策略是AUTO,即在执行SELECT查询之前sometimes flushes theSession。刷新策略can be changed.
标签: hibernate spring-data-jpa spring-transactions