首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate按关联(可选)字段排序

问Hibernate按关联(可选)字段排序
EN

Stack Overflow用户
提问于 2012-10-16 00:35:17
回答 2查看 393关注 0票数 1

我正在尝试对Hibernate数据集进行排序,按(可选)关联对象的属性排序。我遵循了hibernate order by association的例子--这在一定程度上是可行的。当没有关联的对象时,问题就出现了,整个记录都会被忽略。

如果我将对象的关联类型更改为outer join,会有帮助吗?如果是这样的话,有人能告诉我正确的指令吗?

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2012-10-16 02:23:10

引用的问题使用了标准查询,所以我不确定您是否需要这些查询的答案,或者您是否只是想要HQL。假设HQL是OK的,如果你有这样的实体:

代码语言:javascript
复制
class EntityA {
   private Long id;
   @OneToMany
   private EntityB b;

   ....
}

class EntityB {
  private Long id;
  private String name;
}

如果您在EntityA和EntityB之间有一个可选的OneToMany关系,那么您应该能够使用类似如下的查询:

代码语言:javascript
复制
"SELECT obj FROM " + EntityA.class.getName() + " obj LEFT JOIN obj.b obj2 ORDER BY obj2.name";

在其中,您将选择所有与EntityB联接的EntityA (如果存在),并按EntityB.name字段排序。

票数 1
EN

Stack Overflow用户

发布于 2012-10-16 22:11:39

我只修改了一行代码就解决了这个问题。在构造Criteria对象时,我能够传递参数JoinFragment.LEFT_OUTER_JOIN。例如:

代码语言:javascript
复制
    Criteria subCriteria = criteria.createCriteria(subTypeName, JoinFragment.LEFT_OUTER_JOIN);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12900029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档