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 用户指南中的传递持久性一节。