私は新しいアプリケーションに取り組んでおり、equals メソッドと hashCode メソッドの実装方法について助けが必要です。ここSOですでに尋ねられた多くの質問を読んでいます。また、この質問につながるいくつかのブログ投稿も読みました。
最初にちょっとした技術情報: 私は JPA (EclipseLink) を使用しており、アプリケーションは Java EE 用です。
私が読んだ後、 hashCode と equals には不変の値を使用する必要がありますが、クラスのフィールドは通常変更可能であるため、それらを使用することはできません。また、主キー (JPA) を永続化する前に使用できないため、使用することもできません。だから私が考えているのは、UUIDを使用することです。equals と hashCode の両方についてですが、私はこれまでに行ったことがないので、誰かがこれを悪いと考えているのでしょうか (なぜですか?) 可能性のある欠点 (同じ ID を取得する可能性が非常に小さいことは別として) でしょうか? UUID を使用してコンストラクターで割り当てると、最初からすべてのオブジェクトにビジネス ID が付与されます。そして、それを不変にしてデータベースに保存します。
このアプローチは悪いですか?