2011-05-10 58 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() 
     } 
    } 
} 

這應該做的伎倆。