我有一个实体Provider
,每个提供商都有ProviderLanguage
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = PROVIDER_ID, referencedColumnName = PROVIDER_ID)
private Set<ProviderLanguage> providerLanguages;
部分提供商没有语言。当我写这个代码行
Join<Provider, Language> prLanJoin = root.join(Provider.PROVIDER_LANGUAGES)
.join(Language.LANGUAGE);
只是未使用的prLanJoin
变量,我的搜索结果并不包括没有语言的frividers。但是这行代码如何影响搜索结果prLanJoin
并没有在任何地方使用。
当我评论这一行时,它按预期工作,至少对我而言)
P.S我不再使用prLanJoin
加入代码了。我可以简单地评论这一行,代码也可以。
感谢。
答案 0 :(得分:1)
起初太奇怪了,谷歌搜索后我找到了,这就是答案......
符合规范:联接可以链接在一起导航到 目标实体的相关实体,而无需创建 加入每个联接的实例。
因此,即使您没有使用该实例,也可以使用连接方法操作..可能正在使用元模型
连接的目标使用EntityType类型的Metamodel类 指定已连接实体的持久字段或属性。