class Author {
static hasMany = [books: Book]
static mapping = {
books cascade: 'all-delete-orphan'
}
}
级联
用途
配置关联的级联行为。
示例
说明
用法:关联名称(级联:字符串)
参数
-
级联
- 要定义的级联行为。可以是all
、merge
、save-update
、delete
、lock
、refresh
、evict
、replicate
或all-delete-orphan
(仅限一对多关联)中的一个或多个(以逗号分隔)。
默认情况下,当一个实体“属于”另一个实体时,GORM 会配置“all”的级联策略。例如
class Book {
static belongsTo = [author: Author]
}
class Author {
static hasMany = [books: Book]
}
在此,所有持久性操作将从 Author
域级联到 Book
域。因此,当 Author
被删除时,所有关联的图书也将被删除。
如果关联未定义所有者(“属于”关系)
class Book {
}
class Author {
static hasMany = [books: Book]
}
那么 GORM 将默认使用“save-update”的级联策略。因此,如果删除 Author
,则关联 Book
的域不会被删除。使用关联上的 级联
参数来自定义此行为
class Author {
static hasMany = [books: Book]
static mapping = {
books cascade: 'all-delete-orphan'
}
}
使用此配置,如果 Book
从 Author’s
关联的 books
中移除(成为孤儿),它也将被删除。
请参阅 Hibernate 用户指南中的传递持久性一节。