Grails从每个对象返回一个元素

Grails从每个对象返回一个元素,grails,gorm,Grails,Gorm,我试图从每个对象返回一个字符串 鉴于以下情况: class Book { String title Date releaseDate String author Boolean paperback } 对于这本书的每一个实例,我都想得到一组作者,然后让他们独一无二。 我想你可以做一些类似的事情: def authors = Book.findAllByAuthor() 这给了我一个书外对象数组。 我知道我能做一件好事 a =[] authors.each{a.add(it.author)

我试图从每个对象返回一个字符串

鉴于以下情况:

 class Book {
String title
Date releaseDate
String author
Boolean paperback
}
对于这本书的每一个实例,我都想得到一组作者,然后让他们独一无二。 我想你可以做一些类似的事情:

def authors =  Book.findAllByAuthor()
这给了我一个书外对象数组。 我知道我能做一件好事

a =[]
authors.each{a.add(it.author)}
a.unique()
我几乎可以肯定,有一种方法可以把所有作者都写在一行中


有什么想法吗?

您可以使用投影来获得所有书籍的作者的明确列表。更多示例请参见

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

这为您提供了任何书籍的不同作者:

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