class Book {
String title
Date releaseDate
String author
Boolean paperback
}
findAllBy*
用途
动态方法,使用领域类的属性创建查询方法表达式,返回领域类的所有匹配实例
示例
假设有以下领域类
以下所有内容都可能
def results = Book.findAllByTitle("The Shining",
[max: 10, sort: "title", order: "desc", offset: 100])
results = Book.findAllByTitleAndAuthor("The Sum of All Fears", "Tom Clancy")
results = Book.findAllByReleaseDateBetween(firstDate, new Date())
results = Book.findAllByReleaseDateGreaterThanEquals(firstDate)
results = Book.findAllByTitleLike("%Hobbit%")
results = Book.findAllByTitleIlike("%Hobbit%") // ignore case
results = Book.findAllByTitleNotEqual("Harry Potter")
results = Book.findAllByReleaseDateIsNull()
results = Book.findAllByReleaseDateIsNotNull()
results = Book.findAllPaperbackByAuthor("Douglas Adams")
results = Book.findAllNotPaperbackByAuthor("Douglas Adams")
results = Book.findAllByAuthorInList(["Douglas Adams", "Hunter S. Thompson"])
描述
GORM 支持 动态查找器 的概念。findAllBy* 方法查找给定方法表达式的所有结果。
参数
-
metaParams- 包含分页参数max、order、offset和sort以及元参数readOnly、timeout、fetchSize和flushMode的Map
分页和排序参数可用作动态方法的最后一个参数
def results = Book.findAllByTitle("The Shining",
[max: 10, sort: "title", order: "desc", offset: 100])
如果没有项目满足所提供的条件,则返回一个空列表。
以下运算符名称可用在各个动态方法中
-
LessThan -
LessThanEquals -
GreaterThan -
GreaterThanEquals -
Between -
Like -
Ilike(即不区分大小写的 like) -
IsNotNull -
IsNull -
Not -
NotEqual -
And -
Or -
InList
这些运算符名称可视为关键字,当查询具有其中一个名称作为属性名称的领域类时,你将遇到问题。有关动态查找器 的更多信息,请参阅用户指南。