【问题标题】:Grails: How to order by multiple columns in Grails query using SQL ServerGrails:如何使用 SQL Server 在 Grails 查询中按多列排序
【发布时间】:2013-01-10 16:48:57
【问题描述】:

我正在尝试在 grails 中执行按 多列 排序的查询,但这似乎不适用于 SQL Server 数据库(对 Oracle 工作正常)。

def criteria = DomainObject.createCriteria()
results = criteria.list() {

    or {
        eq("field", valueA)
        eq("field", valueB)
    }

    order("field", "asc")
    order("lastUpdated", "desc")
}

我试图将排序放在“and”子句中。

更新:看来我的问题不是由于多列排序失败,而是排序时Oracle和SQL Server表示NULL值的方式。 “asc”NULLS 在 SQL Server 上首先出现,但在 Oracle 上最后出现。

我认为我需要对返回的 grails 列表进行一些后期处理(排序),但如果有人有更好的想法,将不胜感激。

感谢任何帮助。

谢谢

【问题讨论】:

  • 它“似乎没有工作......”?
  • 不错@John!这是讨论此行为的 Hibernate JIRA 问题:hibernate.onjira.com/browse/HHH-465。也许order("field", "acn nulls last") 会起作用?
  • 感谢@Tomasz 的回复,不幸的是这并没有帮助。查看链接的 hiernate jira,我不相信有一个简单的标准构建器方法可以在没有调整的情况下做到这一点。

标签: sql-server grails sql-order-by


【解决方案1】:

我采用了单独的方式使用多个表,因此 NULL 值不会导致任何问题,因为似乎没有任何简单的解决方案。

但是,Hibernate 问题 465(上面链接)现在似乎已修复: http://in.relation.to/Bloggers/HibernateORM420CR1Released

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2010-09-24
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多