(快速参考)

findAllBy*

用途

动态方法,使用领域类的属性创建查询方法表达式,返回领域类的所有匹配实例

示例

假设有以下领域类

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

以下所有内容都可能

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 - 包含分页参数 maxorderoffsetsort 以及元参数 readOnlytimeoutfetchSizeflushModeMap

分页和排序参数可用作动态方法的最后一个参数

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

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