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')
}