2016-03-26 7 views
1

を保存しません。テーブルbuses_driversは、それらのエンティティすべてのキーを格納します。しかし、Busモデルをドライバで保存すると、テーブルは変更されません。私はinverseJoinColmnsマッピングの問題を考える。@ManyToMany関係は、私が<code>@ManyToMany</code>関係を持ついくつかの実体を持って

+0

、または問題がパーシステンスコードにある可能性がありますか?おそらく投稿すると助けになるだろうか? –

答えて

3

これは予想される動作です。双方向多対多関連では、一方の側が逆側でなければなりません。あなたのケースではmappedByが含まれているので、Bus側です:

この関係を所有するフィールド。関係 が単方向でない場合は必須です。

つまり、Driverはアソシエーションの所有者であり、Hibernateはアソシエーションを維持するときにのみその側をチェックします。

2

あなたの関係を間違いなく再設計する必要があります。

双方向の@ManyToMany + CascadeType.ALLで現在の保存シナリオに問題が発生していない場合でも、さらに問題が発生する可能性があります。

例えば、busの1つを削除すると、カスケードするため、すべてのドライバが削除されます。カスケードすると、すべてのバスが削除されます。あなたは基本的には、おそらくあなたが望む以上に多くの削除を終了します。また、これらのマッピングによって生成されたSQLをチェックすると、理想的ではないことに気づくでしょう。

関連する問題