我正在尝试对 Hibernate 数据集进行排序,按(可选)关联对象的属性进行排序。我按照 hibernate order by association 中的示例进行操作- 这在一定程度上是有效的。当没有关联对象时,问题就会出现,整个记录将被忽略。
如果我将对象的关联类型更改为外连接,会有帮助吗?如果是这样,有人可以指出我正确的指令吗?
非常感谢。
最佳答案
所引用的问题使用了 Criteria 查询,因此我不确定您是否需要这些查询的答案,或者您是否只需要 HQL。假设 HQL 没问题,如果您有这样的实体:
class EntityA {
private Long id;
@OneToMany
private EntityB b;
....
}
class EntityB {
private Long id;
private String name;
}
如果 EntityA 和 EntityB 之间有可选的 OneToMany 关系,那么您应该能够使用如下查询:
"SELECT obj FROM " + EntityA.class.getName() + " obj LEFT JOIN obj.b obj2 ORDER BY obj2.name";
您将在其中选择与 EntityB
连接的所有 EntityA
(如果存在),按 EntityB.name
字段排序。
关于java - Hibernate 按关联(可选)字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900029/