我正在为Java EE项目开发一个延迟加载模型。当我尝试对具有空值的数据进行排序时,我遇到了问题。例如,
SELECT u FROM Users u ORDER BY u.Countries。 label ASC
此查询显示按国家/地区排序的所有数据,但省略了具有国家/地区的用户。问题在这里:
从用户u中选择u.Countries ASC
这也不起作用,因为我必须指定一个有效的ORDER BY项目,例如标签。
答案 0 :(得分:1)
您需要使用外部联接
SELECT t1 FROM Table1 t1 left join t1.column1 c1 ORDER BY c1.id ASC
OR
SELECT * FROM Users ORDER BY Countries DESC NULLS LAST;
如果您使用的是标准API,则可以使用以下
USer user = criteriaBuilder.asc(myExpression).nullsFirst();
答案 1 :(得分:0)
您使用的查询无论如何都会将国家/地区的值列为空,最后它不会省略具有空值的记录。