我对以下内容感到有点困惑。
域模型由具有地址的人员组成,这些地址 也可以被其他人引用..
因此,人A具有地址1,2,3,而人B具有地址1,4,5 不,当我删除A人时,B人也丢失了他的地址1 !!我曾是 在级联:'all-delete-orphan'的意思下 对于这种情况。但可能我犯了一个错误! 我该如何解决这个问题?
class Person {
Address address
Address addressPostal
Address addressInvoice
static mapping = {
address cascade:'all-delete-orphan'
addressPostal cascade:'all-delete-orphan'
addressInvoice cascade:'all-delete-orphan'
}
}
class Address {
String street
String streetNo
String streetSuffix
}
答案 0 :(得分:1)
我认为all-delete-orphan
是另一种方式。从 one 一侧的集合中删除 many 对象时,该对象将被自动删除。否则,只有null
作为外键才会“孤立”。
你可以用另一种方式使用它。例如,地址有一个static hasMany = [persons: Person]
,您从中删除了该人,all-delete-orphan
会删除此人。