java - JPA 在使用 FlushModeType.AUTO 进行 native 查询之前不会刷新

标签 java spring hibernate jpa spring-data

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

最佳答案

hibernate FetchMode.AUTO ,这是默认的刷新策略,不会触发 native SQL 查询。

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

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

关于java - JPA 在使用 FlushModeType.AUTO 进行 native 查询之前不会刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216213/

相关文章:

java - 老虎机随机化

java - 适配器没有显示任何内容

java - Spring RMI错误java.lang.ClassNotFoundException : org. springframework.remoting.rmi.RmiInvocationHandler

mysql - c3p0 创建了这么多连接

mysql - 如何将表格转换为列表

JavaFX:来自封装变量的服务类更新消息

java - 如何设置热键? - Chrome 驱动程序。 java 。

java - 由于@ManyToOne 关系,使用 Hibernate 模式导出器生成模式失败

java - 当涉及驱逐时,Spring 的缓存注解是否可以安全使用?

java - 如何在 Hibernate 中使用 JPA Criteria API 摆脱 N+1