1

私は Hibernate や Grails の経験があまりない大学生です。私が持っている主な質問は、主にカスケードが適用される場所についてです。カスケードは、データベースエントリがある属性にのみ適用されますか、それとも他の方法で適用されますか?

たとえば、2 つのドメイン A と B がある場合、B には A で満たされた hastable があります。A を削除した場合、その特定の A エントリの B にあるハッシュテーブル エントリを手動で削除する必要がありますか? そうでない場合、それを削除できるようにするには、どの動作を設定する必要がありますか?

PS私の最初の投稿...十分な詳細がない場合は申し訳ありませんが、質問を適切に説明する経験があまりありません..

4

2 に答える 2

0

私が持っている主な質問は、主にカスケードが適用される場所についてです。カスケードは、データベースエントリがある属性にのみ適用されますか、それとも他の方法で適用されますか?

カスケードにより、エンティティ間の関連付けに沿って、永続化、マージ、保存更新などの操作を「伝播」できます。したがって、A が B と関連付けられている場合、A で実行された操作を B にカスケードすることができます。

たとえば、2 つのドメイン A と B がある場合、B には A で満たされたハッシュテーブルがあります。A を削除した場合、その特定の A エントリの B にあるハッシュテーブル エントリを手動で削除する必要がありますか?

前述したように、カスケードは関連に沿って実行されます。ここでは、B から A への関連付けを記述したので、A から B には何もカスケードされません。この関連付けが双方向である場合 (つまり、A から B に移動できる場合)、次の操作をカスケードできます。 AからBへ。

ただし、カスケード自体はメモリ コンテンツに影響を与えないことを理解する必要があります。コレクションからの A の削除は、ユーザーが行う必要があります。

こちらもご覧ください

于 2010-07-14T19:48:41.553 に答える
0

1 対多の関係の場合、デフォルトの戦略は保存と更新です。削除するには、belongsTo 句が必要です。

詳細については、次のドキュメントのセクション 5.2.1.2 を参照してください。

詳細については、http: //grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.htmlを参照してください。

于 2010-07-14T18:03:57.040 に答える