2011-01-07 5 views
0

JPAでEntityオブジェクトを永続させ、次に別のオブジェクト.equals()があるかどうかを確認する必要があります。JPAの管理対象オブジェクトを作成/編集する必要があります

ただし、最初のオブジェクトはPOJOであり、2番目のオブジェクトは管理された同等のものであるため、テストは失敗します。

JPAの作成操作または編集操作の結果として、新しく管理されたエンティティオブジェクトを戻すことをお勧めしますか?次の2つのタイプを持っている

よろしく、 ローレンス

答えて

1

オブジェクトのビジネスキーを構成するフィールドを使用して、hashCode()およびequals(..)メソッドを上書きできます。 See this article

+0

この記事は非常に役に立ちました。残念なことに、固有のものではない名前フィールドしか持たない自己参照オブジェクトのツリーがあるため、問題が発生しました。このような状況では、私は一意に識別するためにオブジェクト名と結合された親オブジェクトIDを使用しなければならなかった。私はそれを行うより良い方法を見つけることができませんでした。 – retrodev

+0

まあ、それは公正だと思う。オブジェクトがその親と名前によって一意に識別されている場合は、そのようにしてください。 – Bozho

0

? POJO、事実上DTOと注釈付きPOJOが管理されていますか? equalsメソッドをコーディングするか、驚くべき振る舞いをする比較メソッドを作成できますか?

これは、「平等」とは何かに関する興味深い疑問をすべて取り入れています。私の本拠地は、hasTheSameValueAs()メソッドを提供することです。

あなたの質問に直接答えるには、管理対象オブジェクトを返すことが非常に便利なようです。

関連する問題