gpt4 book ai didi

hibernate - 具有关系的 HQL 映射

转载 作者:行者123 更新时间:2023-12-02 22:53:18 26 4
gpt4 key购买 nike

我有一个层次结构模型,我试图在其中构建一组企业及其关联的中心(一对多)。我正在使用的 HQL 中的以下内容:

SELECT new map(b.businessName as name, c as centers) FROM Business b JOIN b.centers c GROUP BY c.centerID

我的预期结果是(使用JSON作为引用):

[
{"name": "Business 1",
"centers": [ centerEntity1, centerEntity2, centerEntity... ]
},
{"name": "Business 2",
"centers": [ centerEntity3, centerEntity4, centerEntity... ]
}
]

但是,我似乎得到了更多一对一关系的结果:

[
{"name": "Business 1",
"centers": centerEntity1
},
{"name": "Business 2",
"centers": centerEntity2
}
]

除此之外,它还运行 1 个查询来获取业务详细信息,然后运行其他查询来获取所有中心。我假设这将使用 JOIN FETCH 全部合并到 1 个查询中,但这会产生错误:

查询指定连接获取,但所获取关联的所有者不存在于选择列表中 [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=c,role= Business.centers,tableName=vw_hier_centers,tableAlias=centers1_,origin=vw_hier_businessesbusiness0_,columns={business0_.business_id,className=Center}}] [选择新 map (b.businessName 作为名称,c 作为中心)FROM Business b JOIN FETCH b.centers c GROUP BY c.centerID]

最佳答案

这背后的想法太复杂了。这是完全符合我需要的解决方案:

SELECT DISTINCT b FROM Business b JOIN FETCH b.centers

1 个查询,它会获取一系列企业及其获取的中心。

关于hibernate - 具有关系的 HQL 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com