4

私は新しいアプリケーションに取り組んでおり、equals メソッドと hashCode メソッドの実装方法について助けが必要です。ここSOですでに尋ねられた多くの質問を読んでいます。また、この質問につながるいくつかのブログ投稿も読みました。

最初にちょっとした技術情報: 私は JPA (EclipseLink) を使用しており、アプリケーションは Java EE 用です。

私が読んだ後、 hashCode と equals には不変の値を使用する必要がありますが、クラスのフィールドは通常変更可能であるため、それらを使用することはできません。また、主キー (JPA) を永続化する前に使用できないため、使用することもできません。だから私が考えているのは、UUIDを使用することです。equals と hashCode の両方についてですが、私はこれまでに行ったことがないので、誰かがこれを悪いと考えているのでしょうか (なぜですか?) 可能性のある欠点 (同じ ID を取得する可能性が非常に小さいことは別として) でしょうか? UUID を使用してコンストラクターで割り当てると、最初からすべてのオブジェクトにビジネス ID が付与されます。そして、それを不変にしてデータベースに保存します。

このアプローチは悪いですか?

4

1 に答える 1

4

IMO UUID は問題なく機能するので、そうすることをお勧めします。

2 つの同じ値をヒットする可能性は無限に小さいため、このアプローチの欠点は見つかりません。

于 2012-09-10T13:00:10.617 に答える