(快速參考)

findOrSaveWhere

目的

使用與網域類別屬性名稱對應的名稱參數來執行查詢,傳回第一個符合的結果。此方法的行為就像 findWhere,但它絕不會傳回 null。如果在資料庫中找不到符合的執行個體,則會建立一個新的執行個體,使用查詢參數中的值來填入,然後儲存並傳回。此方法與 findOrCreateWhere 的不同之處在於,此方法會儲存新建立的執行個體,而 findOrCreateWhere 則不會。

範例

給定網域類別

class Book {

   String title
   Date releaseDate
   String author

   static constraints = {
      releaseDate nullable: true
   }
}

你可以使用下列形式進行查詢

def book = Book.findOrSaveWhere(author: "Stephen King", title: "The Stand")

說明

參數

  • queryParams - 要用於查詢的鍵/值配對的 Map。如果找不到符合的執行個體,則會使用此資料來初始化新的執行個體。