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
这些运算符名称可视为关键字,当查询具有其中一个名称作为属性名称的领域类时,你将遇到问题。有关动态查找器 的更多信息,请参阅用户指南。