Hibernate Grails2.4.4:createCriteria:如何按顺序使用日期和整数之和?
域类:Hibernate Grails2.4.4:createCriteria:如何按顺序使用日期和整数之和?,hibernate,grails,createcriteria,Hibernate,Grails,Createcriteria,域类: class Record { Date date Integer days } 代码: 问题: 显然这不起作用,但我需要知道是否有一种方法可以使用createCriteria按日期+天数排序 谢谢:)就像@StanislavL所说的,你可以使用 我认为使用createCriteria不可能做到这一点,因为order节点实际上只是org.hibernate.criteria.order类的包装器,而该类不具备此功能。我相信有一个只使用SQL的解决方案,但我不相信有更简单的方
class Record {
Date date
Integer days
}
代码:
问题:
显然这不起作用,但我需要知道是否有一种方法可以使用createCriteria按日期+天数排序
谢谢:)就像@StanislavL所说的,你可以使用
我认为使用
createCriteria
不可能做到这一点,因为order
节点实际上只是org.hibernate.criteria.order
类的包装器,而该类不具备此功能。我相信有一个只使用SQL的解决方案,但我不相信有更简单的方法通过GORM。您可以使用@Formula映射,将表达式放在记录的字段(我们称之为sortOrder)中,然后根据链接按顺序()使用字段,公式
仅用于鉴别器
映射下,其目的是:“一个用于计算类类型的SQL表达式。”我找到了适当的文档:因此这是一个好主意,但失败的原因是:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解在第1行hanks@tylerwal处记录此订单的“this_uu.INTERVAL this_uu.days this_uu.days”附近使用的正确语法。havoc74,您的公式在mySql数据库中有效吗?
def record.createCriteria().list {
order( "DATE_ADD( date, INTERVAL days DAY )", "asc" )
}
Date dateWithAdditionalDays
static mapping = {
dateWithAdditionalDays formula: 'DATE_ADD( date, INTERVAL days DAY )'
}
def record.createCriteria().list {
order('dateWithAdditionalDays')
}