我有以下类(为清楚起见进行了简化):
Class Top {
InternationalStringType name;
}
Class InternationalStringType {
List<LocalizedStringType> localizedString;
}
Class LocalizedStringType {
String value;
}
以下 EJBQL 查询成功检索了 Top 的所有实例,并填充了它们的子对象:
SELECT DISTINCT Object(t) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls
我想修改上面的查询,使结果按 Top.name.localizedString.value 排序
执行此操作的正确语法是什么?我尝试了以下查询,但得到“错误:对于 SELECT DISTINCT,ORDER BY 表达式必须出现在选择列表中”
SELECT DISTINCT Object(t) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls ORDER BY nm_ls.value ASC
我不清楚在 ORDER BY 子句的选择列表中放置什么。
无论我在逗号后面放什么,在 Object(t) 之后给出“,”的错误:
SELECT DISTINCT Object(t), Object(nm_ls) FROM Top t LEFT OUTER JOIN t.name nm LEFT OUTER JOIN nm.localizedString nm_ls ORDER BY nm_ls.value ASC
如果它相关,我的 JPA 实现是休眠 3.6.4.Final。TIA 为您提供帮助。