class Book {
String title
static belongsTo = [author: Author]
}
belongsTo
用途
定義「屬於」關係,其中由 belongsTo
指定的類別假設關係的所有權。這會控制儲存和刪除如何串接。確切的行為取決於關係的類型
-
多對一/一對一:儲存和刪除會從擁有者串接至依賴者(具有
belongsTo
的類別)。 -
一對多:儲存會從一端串接至多端,但如果多端有
belongsTo
,則刪除也會朝該方向串接。 -
多對多:只有儲存會從「擁有者」串接至「依賴者」,刪除則不會。
範例
在此範例中,Book
類別指定它屬於 Author
類別,因此當刪除 Author
執行個體時,其所有關聯的 Book
執行個體也會被刪除。
說明
belongsTo
屬性抽象了 Hibernate 中串接行為的性質。如果您希望一個類別屬於另一個類別,但沒有反向參考,則可以將類別或類別清單指定為值
class Book {
static belongsTo = Author
}
或
class Book {
static belongsTo = [Author, Library]
}
反向參考,即連結回擁有者的屬性,可以用兩種方式新增
class Book {
Author author
static belongsTo = Author
}
或
class Book {
static belongsTo = [author: Author]
}
在這些範例中,這兩種技術都會建立一個名為 author
的 Author
屬性。此外,如果類別屬於多個擁有者,Map 屬性可以指定多個屬性和類型。
belongsTo
屬性很簡單,表示您不必擔心 Hibernate 層疊策略,但如果您需要更精細地控制層疊,可以使用 ORM DSL。這允許精細地控制層疊更新和刪除。