カスケード削除なしで双方向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」に設定できますか(または設定されますか)?
この問題に関するあらゆる意見に感謝します。