我想知道是否有可能在沒有級聯刪除的情況下刪除雙向1:N關聯中的父對象。據如何防止雙向關聯級聯刪除?
http://grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html
...在單向關係中的父最終被以「保存更新」和孩子一空結束映射。我已經嘗試了雙向關係的這些設置,但不是非常令人驚訝的是它不起作用。具體做法是:
class Personnel {
...
}
static hasMany = [projectlead:Project, projectmanager:Project]
static mappedBy = [projectlead:'leaddeveloper', projectmanager:'projectmanager']
static mapping = {
projectlead cascade:'save-update'
projectmanager cascade:'save-update'
}
而這裏的項目類:
class Project {
...
}
static belongsTo = [leaddeveloper:Personnel, projectmanager:Personnel]
static mapping = {
leaddeveloper cascade:'none'
projectmanager cascade:'none'
}
我寧願不重新設計我的應用程序(通過從項目類刪除「屬於關聯」),如果有此一解決方案:從兩端進行導航訪問非常方便,我在項目結束時沒有太多實例。另外,如果有一種方法可以實現這一點,知道這些活動映射後會發生什麼,我可以將它們(或將它們設置)爲「null」爲例嗎?
讚賞此事的任何投入。
嗨晃,非常感謝您的建議......我認爲這就是我要實現這一點! – sphere 2011-04-19 13:41:16