2011-05-10 63 views
2

我有两个域的类。Grails反向级联删除没有hasMany或belongsTo

class UsersAddThese { 
    String someData 
} 

class TheseAreConstantlyGenerated { 
    UsersAddThese theProblem 
} 

是否有某种方式来删除UsersAddThese,并自动删除所有TheseAreConstantlyGenerated或者我应该只是在逻辑添加到findAllByTheProblem然后遍历和删除。 (我宁愿如果它可以自动完成,所以我可以添加新生成的类,指的是UsersAddThese,而不是更改删除控制器。)

或者,有没有什么方法可以告诉GORM,“如果别的东西依赖于我正在删除以致导致ERROR util.JDBCExceptionReporter - Cannot delete or update a parent row: a foreign key constraint fails,删除那个 - 递归。“

回答

5

好吧,看起来像参照完整性的重点是不要做你在你的问题的第二部分要做的事情。但是,您可以关闭这个添加到您的UsersAddThese域类:

def beforeDelete() { 
    TheseAreConstantlyGenerated.withNewSession { 
     TheseAreConstantlyGenerated.findAllByTheProblem(this).each {TheseAreConstantlyGenerated thing -> 
     thing.delete() 
     } 
    } 
} 

这应该做的伎俩。