hashcode()
とequals()
の永続エンティティをオーバーライドするとき、IDを含めるべきではなく、オブジェクトを一意に識別する意味のあるプロパティ。 しかし、オプティミスティックな並行性制御のために使用されるversion
フィールドについては、によってHibernateが使用されますか? IDと同じようにスキップする必要がありますか? new User(name='John', version=1).equals(new User(name='John',version=2))
と言うと、どうにかHibernate OCCを混乱させないでしょうか?Hibernate:hashcode()とequals()メソッドに 'version'フィールドを含めるべきです
5
A
答えて
3
ビジネスキーの等価性を使用してequals()およびhashCode()を実装することをお勧めします。ビジネスキーの等価性は、equals()メソッドがビジネスキーを構成するプロパティのみを比較することを意味します。それは、現実の世界で私たちのインスタンスを識別するキー(自然候補キー)
あるので、あなたがないがequals()
hashcode()
にバージョンプロパティを含める必要があります参照してください。http://docs.jboss.org/hibernate/core/3.3/reference/en/html/persistent-classes.html#persistent-classes-equalshashcode
関連する問題
- 1. すべてのクラスは.equalsメソッドと.hashcodeメソッドを持つべきですか?
- 2. フィールドをフィールドに含める
- 3. すべてのサブクラスでequalsメソッドを使用するクラス
- 4. JACKSONフィールドのラッパーをどのように含めるべきですか?
- 5. equalsメソッドの書き方
- 6. 同じ名前のオブジェクト内にプロパティ(フィールド)とメソッドを含めることはできますか?
- 7. キーワードとEqualsメソッドのオーバーライド「が」
- 8. Java Equalsメソッド
- 9. toString()メソッドとequals()メソッドを書き込む方法は?
- 10. 使用する.Equals()メソッド
- 11. doubleをデリミティブにすることはできませんJavaはequalsメソッド
- 12. 私のequals/hashCodeメソッドはオブジェクトIDより多くを調べるべきですか?私のアプリケーションで
- 13. すべてのUIScrollViewDelegateメソッドをUIScrollViewに含めるとどうなりますか?
- 14. インタフェース内のtoString、hashcode、equalsメソッド
- 15. 私はPHPコードカバレッジで@coversにプライベートメソッドを含めるべきです
- 16. UNIXコースを教える際に含めるべきことは?
- 17. gに複数のフィールドを含めることができますか?select optionValue?
- 18. コレクションからすべてのドキュメントを返すときに特定のフィールドのみを含める方法
- 19. オープンソースプロジェクトにカスタムカテゴリを含めるべきですか?
- 20. クエリでフィールドを含めることを使わずに集計フィールドと共にすべてのフィールドを取得する必要があります。
- 21. 別のヘッダに含まれるファイルを含めるべきですか?
- 22. TypeScriptインターフェイスにメソッドを含めることは可能ですか?
- 23. Spring Beanクラスに静的メソッドを含めることはできますか?
- 24. Observable subscribeメソッド内にロジックを含めることはできますか?
- 25. 名前空間内にヘッダファイルを含めるべきですか?
- 26. アプリケーションにコマンドラインモードを含めるべきですか?
- 27. `include do ... end`ブロックには何を含めるべきですか?
- 28. インデックスに「列単位」のオーダーを含めるべきですか?
- 29. "Fixed minor bugs"をコミットメッセージに含めるべきですか?
- 30. Visual Studioソリューションにgitignoreファイルを含めるべきですか?
をええ、私は」それを読んでください。しかし、 'version'フィールドはそこには言及されていないので、その目的(異なる値は異なるオブジェクトを意味する)を考慮に入れて、私は疑いました。しかし、Hibernateはアプリケーション内の他のものに 'version'を使わないことを勧めます。だから私はもっとそれについて考えるほど、 'バージョン'は 'equals()'と 'hashcode()'に含まれてはならないと確信します。 – wajda