gpt4 book ai didi

oracle - 如何在 Grails/GORM 中应用 NULLS LAST 排序

转载 作者:行者123 更新时间:2023-12-02 06:33:42 28 4
gpt4 key购买 nike

我正在使用 Grails DetachedCriteria 查询,并且在降序排序时需要获取最后排序的空值。这是针对 Oracle 数据库的。

根据我迄今为止所做的研究,Hibernate 中没有对此的直接支持,因此 Grails 中也没有:

Grails/Hibernate: how to order by isnull(property) to get NULLs last?

https://hibernate.atlassian.net/browse/HHH-2381

基于这些,我最好的选择似乎是从 Hibernate 扩展 Order 类并自己添加 NULLS LAST 支持。沿着这条路,任何人都可以给我一个如何通过 Grails 公开的例子吗?我对 Hibernate 的使用经验很少,因此给出的示例相当难以理解。

或者:Oracle 中是否有任何方法可以通过列等的某些属性在表定义中指定 NULLS LAST 排序?

最佳答案

以下是 grails 标准中的一个示例,通过重写 hibernate addOrder 方法对 Nulls 最后进行排序

def userCriteria = User.createCriteria()
List results = userCriteria.list(max:limit, offset:offset) {
eq("isActive", true)
ilike("firstName",text+"%")
userCriteria.addOrder(Order.asc("firstName").nulls(NullPrecedence.LAST));
}

您甚至可以将其放在 or block 中。例如。

or{
userCriteria.addOrder(Order.asc(USERNAME).nulls(NullPrecedence.LAST));
userCriteria.addOrder(Order.asc(EMAIL).nulls(NullPrecedence.LAST));
userCriteria.addOrder(Order.asc(FIRST_NAME).nulls(NullPrecedence.LAST));
userCriteria.addOrder(Order.asc(LAST_NAME).nulls(NullPrecedence.LAST));
}

希望这可以帮助像我一样进行搜索的人。

关于oracle - 如何在 Grails/GORM 中应用 NULLS LAST 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121605/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com