Domain class findAll无效查询 - 查询语法

时间:2014-08-19 19:48:56

标签: grails

我正在尝试将findAll与mysql的查询字符串一起使用。相同的查询从mysql工作台可以正常工作。非常感谢任何指针,谢谢。

//find all subscriptions expiring 7 days from now
Subscription.findAll("from subscription where expires=date_add(CURDATE(), INTERVAL 7 DAY)")

错误:

Invalid query [from subscription where expires=date_add(CURDATE(), INTERVAL 7 DAY)] for domain class

1 个答案:

答案 0 :(得分:1)

它不起作用,因为findAll取代HQL而不是纯SQL。

有很多方法可以编写查询。 findAllByTimeCategory应该完成这项工作:

import groovy.time.TimeCategory    

use( TimeCategory ) {
    Subscription.findAllByExpires(7.days.from.now)
}

我假设Subscription域类具有属性expires