【发布时间】:2011-07-22 20:03:37
【问题描述】:
我和 Hibernate 社区中的某个人有同样的问题:FetchProfiles。
出于性能原因,我在数据模型中有如下关系:
...C -[FetchType.LAZY]-> D -> [FetchType.LAZY] -> E
使用 FetchProfile,我可以用 C 急切地加载 D,但我不知道如何急切地加载 E。我知道我可以使用内部连接成功地使用 NamedQuery,但它确实让我无法解决问题如何使用 FetchProfile 进行操作。一个尝试的 FetchProfile 示例(其他任何东西都会在时间的迷雾中丢失):
@FetchProfile(name = "cwithDAndE", fetchOverrides = {
@FetchProfile.FetchOverride(entity = C.class, association = "dByCId", mode = FetchMode.JOIN),
@FetchProfile.FetchOverride(entity = D.class, association = "eByDId", mode = FetchMode.JOIN)
})
我为会话启用了 FetchProfile 并成功使用了 session.get 并且没有错误,并且 C 和 D 已填充 - E 仍然是懒惰且未填充的。在绝望中,我记得尝试从 C 向下的关联使用点符号。我只能找到深度为 1 的示例。
这是我所知道的强迫症类型的空白,需要填补!
提前感谢您的帮助。
【问题讨论】:
-
你能把C、D和E类的注释贴出来吗? (除了 FetchTypes)
标签: java hibernate profile fetch