【发布时间】:2026-02-02 21:15:01
【问题描述】:
我有以下课程(为清楚起见进行了简化):
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 为您提供帮助。
【问题讨论】:
标签: ejbql