JPA 在使用 FlushModeType.AUTO 进行本机查询之前不会刷新

Ole*_*kov 5 java spring hibernate jpa spring-data

在我们的项目中,我们使用hibernate 5.0.12和Spring data Jpa。我发现jpa不会在本机查询之前调用flush。但是在JPA规范中,我读到FlushModeType.AUTO在每个查询(JPQL或本机SQL)之前调用flush() .我猜它在休眠版本中存在问题。有人可以澄清这个问题吗?我们在这个问题上有很多问题。

Vla*_*cea 4

HibernateFetchMode.AUTO是默认的刷新策略,不会触发本机 SQL 查询。

从 5.2 开始,这一切都取决于您如何引导 Hibernate。JPA 引导程序将产生 JPA 行为,该行为会在任何查询之前触发刷新,而本机引导程序则不会。

对于较旧的 Hibernate 版本,即使对于 JPA 引导程序,它的行为也与传统刷新模式相同。