相关疑难解决方法(0)

Hibernate:在HQL中覆盖映射的EAGER?

可以LAZY使用HQL 覆盖LEFT JOIN FETCH.

FROM Obj AS obj LEFT JOIN FETCH obj.otherObj WHERE obj.id = :id
Run Code Online (Sandbox Code Playgroud)

是否也可以覆盖EAGER?怎么样?

hibernate hql eager lazy-evaluation fetch

18
推荐指数
2
解决办法
1万
查看次数

HQL:从Eager Table获取加入集合

我有四张桌子:

RootNode // Will return multiple root nodes 
SubNode // Will return one sub node per root node
SubNodeChildren1 // Will return multiple for each sub node
SubNodeChildren2 // Will return multiple for each sub node
Run Code Online (Sandbox Code Playgroud)

和类似的实体结构:

RootNode -> SubNode -> SubNodeChildren1
                    -> SubNodeChildren2
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,它将返回RootNodes表中的所有内容,SubNodeSubNode初始化其子项.这SubNode是令人兴奋的,但SubNode孩子们是懒得取出来的.

我知道如何编写一个查询,该查询将LEFT OUTER JOIN FETCH表的直接子项并相应地初始化它们.但是,我不知道如何抓住从顶级表中急切获取的表的子项.

我尝试过类似的东西:

SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
Run Code Online (Sandbox Code Playgroud)

但是,这总是给我一个错误,即所有者不属于SELECT.

任何帮助是极大的赞赏.

sql hibernate hql

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

hibernate ×2

hql ×2

eager ×1

fetch ×1

lazy-evaluation ×1

sql ×1