2015-02-24 37 views
0

我有以下域類的Grails - 動態查找得到的日期查詢格姆

class Book { 
    String title 
    Date releaseDate 
    Integer daysOnShelf 
    Author author 
} 

我如何可以列出所有的書籍,其中當前日期比releaseDate + daysOnShelf更大?例如,如果2015-02-10 + 5releaseDate + daysOnShelf)因爲日期比現在少,請不要列出。

這可以使用GORM動態查找器或Criteria Builder來完成嗎?例如,

def index(Integer max) { 
    def books = Book.findAll { 
     releaseDate.plus(daysOnShelf) < new Date() 
    } 
    respond books 
} 
+1

這是否工作呢? – 2015-02-24 20:09:36

+0

它沒有。拋出一個異常:'grails.gorm.DetachedCriteria.plus()適用於參數類型...可能的解決方案:list(),sum()...' – 2015-02-24 20:16:54

+1

http://stackoverflow.com/questions/6456061/grails -findall-posts-created-by-user – 2015-02-24 20:23:31

回答

1

這應該acchieve你想要什麼:

Date dateMinusDaysOnShelf = new Date() - daysOnShelf 

Book.findAllByReleaseDateLessThan(dateMinusDaysOnShelf)