Grails 1.1 立即加载和延迟加载 - 自定义级联行为

正如 级联更新 这节描述的,控制更新和删除的主要机制是从关联一端到 belongsTo 静态属性的一端。

然而,通过cascade属性,ORM DSL可以让你访问Hibernate 的 transitive persistence能力。
有效级联属性的设置包括:

• create - 创建从关联端到另一端的级联

• merge - 合并 detached 联合

• save-update - 只级联保存和更新

• delete - 只级联删除

• lock - 关联的悲观锁是否被级联

• refresh - 级联refreshes

• evict - cascades evictions (equivalent to discard() in GORM) to associations if set
• all - 级联所有操作

• delete-orphan - Applies only to one-to-many associations and indicates that when a child is removed from an association then it should be automatically deleted

获得级联样式更好的理解和用法的介绍,请阅读Hibernate文档的transitivepersistence 章节

使用上述的值定义一个或多个级联属性(逗号分隔):class Person { String firstName static hasMany = [addresses:Address] static mapping = { addresses cascade:"all,delete-orphan" } } class Address { String street String postCode }