私はHibernateの逆属性を理解しようとしてきましたが、それは概念的に難しいことの1つにすぎないようです。
私が得た要点は、 1対多のマッピングを使用して子オブジェクトのコレクションを持つ親エンティティ(例:Parent)がある場合、マッピングにinverse = trueを設定すると、Hibernateに'反対側(子)は、テーブル内の外部キー参照を維持するために自身を更新する責任があります。
これを行うことは、コードのコレクションに子を追加し、次に親を保存することに関して2つの利点があるように見えます(カスケードすべてが設定されています):データベースへの不要なヒットを保存します(逆セットがないため、Hibernateはそれを考えますFK関係を更新する場所が2つあります)、および公式ドキュメントによると:
アソシエーションの列がNOTNULLと宣言されている場合、NHibernateはアソシエーションを作成または更新するときに制約違反を引き起こす可能性があります。この問題を防ぐには、inverse = "true"とマークされた多くの値の端(セットまたはバッグ)との双方向の関連付けを使用する必要があります。
これは今のところすべて理にかなっているようです。私が得られないのはこれです:1対多の関係でinverse = trueを使用したくないのはいつですか?