2014-01-22 20 views
0

我想從每個對象返回一個單一的字符串。Grails從每個對象返回一個元素

考慮以下幾點:

class Book { 
String title 
Date releaseDate 
String author 
Boolean paperback 
} 

爲圖書的每個實例我想作者的數組,然後使它們獨特的。 我想你可以這樣做:

def authors = Book.findAllByAuthor() 

這只是給了我一個數組off書的對象。 我知道我可以做一個

a =[] 
authors.each{a.add(it.author)} 
a.unique() 

我幾乎可以肯定有一種方法只抓住所有的作者在一行。

有什麼想法?

回答

1

這給你的任何一本書的不同作者:

Book.executeQuery("select distinct author from Book") 
1

您可以使用投影來獲取所有書籍中不同作者的清單。查看createCriteria documentation以獲取更多示例。

def c = Book.createCriteria() 
def authors = c.list() { 
    projections { 
    distinct('author') 
    } 
}