Grails删除其他域对象引用的记录?

时间:2011-11-30 21:03:38

标签: grails dns gorm

我对以下内容感到有点困惑。

域模型由具有地址的人员组成,这些地址 也可以被其他人引用..

因此,人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 
} 

1 个答案:

答案 0 :(得分:1)

我认为all-delete-orphan是另一种方式。从 one 一侧的集合中删除 many 对象时,该对象将被自动删除。否则,只有null作为外键才会“孤立”。

你可以用另一种方式使用它。例如,地址有一个static hasMany = [persons: Person],您从中删除了该人,all-delete-orphan会删除此人。