2016-05-04 25 views
0

私の質問は、私は顧客のオブジェクトがある場所のセットを持っているようです。今私が場所の1つか2つのプロパティの変更を行っている場合。次に、Customerオブジェクトに対してmergeを呼び出します。 Hibernateは場所の変更を保存しますか、明示的に各場所のマージを呼び出さなければなりません。私は、顧客のロケーションプロパティのすべてをカスケード接続しています。何らかの理由で、私が顧客上でマージを呼び出すとき、DB内のロケーション値を更新していません。Hibernate JPAテンプレートは、参照されたオブジェクトをマージします

+0

ロケーションエンティティは、java Setで正しく使用されるhashCodeメソッドおよびequalsメソッドをオーバーライドしますか? –

+0

また、新しい場所のエンティティが更新されているのではなく、汚れたものが作成されているかどうかを確認してください... –

+0

こんにちはCarlitos、それはレガシーコードで、ハッシュコードと等価メソッドをオーバーライドしていないことを確認しました。ただし、hashcodeとequalsメソッドをオーバーライドしないと、新しいエントリをセットする際に問題が発生していました。新しいLocationオブジェクトについては、JVMはハッシュコードをチェックし、ハッシュコードに基づいて、バケットにどこに配置するかを決定します。すでにhaschodeのエントリがある場合、equalsメソッドを呼び出して、新しいエントリを作成する必要があるかどうかを決定します等しい方法のリターンに基づいて。 – Vikky

答えて

1

お客様エンティティとロケーションエンティティのコードを共有してください。それはより良い方法で問題を理解するのに役立ちます。

関連する問題