(快速參考)

findBy*

目的

動態方法,使用網域類別的屬性來執行查詢,傳回第一個符合的結果。

範例

假設網域類別為 Book

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

以下皆為可能的方法

def b = Book.findByTitle("The Shining")
b = Book.findByTitleAndAuthor("The Sum of All Fears", "Tom Clancy")
b = Book.findByReleaseDateBetween(firstDate, new Date())
b = Book.findByReleaseDateGreaterThanEquals(firstDate)
b = Book.findByReleaseDateLessThanEquals(firstDate)
b = Book.findByTitleLike("%Hobbit%")
b = Book.findByTitleIlike("%Hobbit%") // ignores case
b = Book.findByTitleNotEqual("Harry Potter")
b = Book.findByReleaseDateIsNull()
b = Book.findByReleaseDateIsNotNull()
b = Book.findPaperbackByAuthor("Douglas Adams")
b = Book.findNotPaperbackByAuthor("Douglas Adams")
b = Book.findByAuthorInList(["Douglas Adams", "Hunter S. Thompson"])

說明

GORM 支援 動態尋找器 的概念。findBy* 方法會尋找給定方法表達式的第一個結果。

以下運算子名稱可用於各動態方法中

  • LessThan

  • LessThanEquals

  • GreaterThan

  • GreaterThanEquals

  • Between

  • Like

  • Ilike (即忽略大小寫的 like)

  • IsNotNull

  • IsNull

  • Not

  • NotEqual

  • And

  • Or

  • InList

上述運算子名稱可視為關鍵字,當查詢網域類別時,如果其中一個名稱用作屬性名稱,您可能會遇到問題。有關 動態尋找器 的更多資訊,請參閱使用者指南。