【问题标题】:CriteriaQuery<?> ignore null valueCriteriaQuery<?> 忽略空值
【发布时间】:2019-02-27 22:36:32
【问题描述】:

当我尝试使用 CriteriaQuery 订购数据时,它会忽略所有空值和特殊字符,如 '-' 。 这是我的代码:

if ( "radical".equals((String) params.get("sort"))) {

                    if ("ASC".equals(params.get("order"))) {
                        query.orderBy(cb.asc(cb.upper(root.get(CONTRAT).get(RELATION_COMMERCIALE).get("identifiantRC"))));
                    }else if ("DESC".equals(params.get("order"))) {
                        query.orderBy(cb.desc(cb.upper(root.get(CONTRAT).get(RELATION_COMMERCIALE).get("identifiantRC"))));
                    }
                }

有什么建议吗?

【问题讨论】:

  • 请将代码发布为文本,而不是图像,并清楚说明您期望发生的情况与实际发生的情况。

标签: java spring-mvc spring-data-jpa jpql


【解决方案1】:

这并不特定于 JPA、Spring 或它们的组合。

这是您的数据库或 SQL 的基本功能。 有些东西必须定义排序的实际含义。

AFAIK 详细信息如何配置它是特定于数据库的,并且您没有指定您正在使用的数据库,所以这里有一些信息是如何在 Oracle 中控制的。他们称之为linguistic sorting

为了控制它,您必须找到符合您需要的语言环境或build a new one。 关键是“可忽略的字符”,您可能已经猜到它在排序时会被忽略。它们包括“-”。

【讨论】:

    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多