class Book {
String title
}
def book = new Book(title: 'title1')
def book = new Book(title: 'title2')
def book = new Book(title: 'title3')
如何获得标题集?像
titleSet = ['title1', 'title2', 'title3']
这样的东西我以为像
def titleSet = Book.findTitles();
这样的东西可能会起作用,但是我找不到类似的东西。我知道我可以做:
def books = Book.list()
def titleSet
for(def book : books)
titleSet.add(book.title)
但是我正在寻找一种更时髦的方式。
最佳答案
这将遍历所有书籍的标题,并创建一个Set而不是List。
Book.all.title as Set
更新
上面的代码将获取所有Book实例,如果您只需要
title
,这些实例可能很繁琐。您也可以尝试使用条件或HQL仅获取标题列表。def titleSet = Book.createCriteria().listDistinct {
projections {
property('title')
}
}
关于grails - 如何在Groovy中获得一组字段值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21710170/