gpt4 book ai didi

java - 为什么我的 hibernate join 只返回一张表的查询?

转载 作者:行者123 更新时间:2023-12-01 04:37:22 25 4
gpt4 key购买 nike

我的查询是:

            List<EmpModel> EmpData = sess2.createCriteria(EmpModel.class)
.setFetchMode("TestModel", FetchMode.JOIN)
.add(Property.forName("id").in(emp_ids)).list();

现在,触发的查询完全正确。它返回 test 和 emp 表的一对一连接。但是,返回的打印语句仅提供 EmpModel 表中的值。我相信原因是上面提到的 emp_ids 总是为零,测试表中的每个值都是空的。有人可以告诉我如何克服这个错误吗?

最佳答案

如果您希望条件返回 TestModel实例也,您可以添加另一个条件和结果转换器。您没有发布您的实体,例如 EmpModel有特性testModel :

List<<HashMap<String, Object>> EmpData = sess2.createCriteria(EmpModel.class)
.add(Property.forName("id").in(emp_ids))
.createAlias("testModel", "tm")
.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
.list();

请注意,返回类型从 List<EmpModel> 更改为至List<<HashMap<String, Object>> ,因为现在查询将返回 HashMap 的列表s。每个HashMap都会有一个"this"条目指向 EmpModel ,以及 "tm"条目(我们在构建查询时分配的别名)指向相应的 TestModel .

PS:我删除了 setFetchMode从代码中。不知何故,这不适用于上述方法。

关于java - 为什么我的 hibernate join 只返回一张表的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17159731/

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