java - 让 Hibernate 知道隐藏的实体关系

标签 java hibernate

假设我有一个用 Hibernate (E) 映射的实体和一个查询实体表的 View ,也用 Hibernate (V) 映射。

如果我持久化 E 的实例,然后在同一个 session 中查询 V,那么 hibernate 不会刷新持久化队列,因为它不知道这两个实体是相关的,因此对 V 的查询结果将是不正确的。

我目前正在手动刷新 session ,但我发现这是一个不令人满意的解决方案,因为它假设了太多关于映射完成方式的知识。

还有哪些其他选项可以确保对 View 的查询是正确的?

最佳答案

最直接的方法是使用 @Synchronize .

此行为由 EntityPersister.getQuerySpaces() 控制.

您可以尝试覆盖该方法并配置 Hibernate 以使用带有 @Persister 注释的自定义持久器。在调试器中检查 SessionImpl.autoFlushIfRequired() 以了解这些空格应该是什么样子(我猜它们是相关表的名称)。

关于java - 让 Hibernate 知道隐藏的实体关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5273355/

相关文章:

javascript - 从 Google App Engine (Java) 上传文件到 Google 云存储

java - 通过maven部署第3方OSGI包

java - 运行 bin/hadoop namenode -format 时出现 fatal error

java - 如何在hibernate中查询map元素?

java - 如何在 Spring 中定义多个 sessionfactory 实例?

java - SQL 删除级联帮助(特定问题)

java - 我正在 Java 中使用 Python 指纹传感器,

java - Hibernate 二级缓存和数据库模式中的 ON DELETE CASCADE

java - 连接多个辅助表

java - 如何在JPA中使用UNION ALL?