【发布时间】: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