1

カスケード削除なしで双方向1:Nアソシエーションで親オブジェクトを削除できるかどうか知りたいのですが。によると

http://grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html

...一方向の関係では、親の端は「save-update」でマップされ、子の端は「none」でマップされます。双方向の関係でこれらの設定を試しましたが、それほど驚くことではありませんでした。具体的には:

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'
}

これに対する解決策がある場合は、アプリケーションを再設計したくありません(Projectクラスから「belongsTo」を削除します)。両端からのナビゲーションアクセスは非常に便利で、プロジェクト側にはあまり多くのインスタンスがありません。

また、これを実装する方法がある場合、それらのアクティブなマッピングが後でどうなるかを知ることは興味深いでしょう。たとえば、それらを「null」に設定できますか(または設定されますか)?

この問題に関するあらゆる意見に感謝します。

4

1 に答える 1