我不确定我是否正确地问这个问题,但我会尽力让它尽可能清楚。我有一个实体bean,其中包含其他实体bean的外键。其中一个外键带回一组其他实体bean。然后我想从集合中的每个实体bean中获取另一个实体bean。所以就像这样
Bean 1 -> Bean 2 -> Bean 3
或
Bean 1
获取Bean 2
获取Bean 3
我有一个HQL查询带回了Bean 1
的集合。我知道我可以从Bean 2
Bean 1
开始,但是我只能通过运行原始查询从Bean 3
获得Bean 2
?或者我是否需要运行单独的HQL查询才能获得Bean 3
?
答案 0 :(得分:0)
是的,如果需要,您可以将整个树带回HQL中。 See this reference for information
“fetch”连接允许使用单个select来初始化值的关联或集合及其父对象。这在集合的情况下特别有用。它有效地覆盖了关联和集合的映射文件的外连接和延迟声明。有关更多信息,请参见第19.1节“获取策略”。
from Cat as cat
inner join fetch cat.mate
left join fetch cat.kittens