2016-07-07 5 views
2

2つのオブジェクトクラスの多対多マッピングを作成しています。 hashCode()equals()メソッドを記述する必要があります。もしそうなら、netbeansはコードヘルプを自動的に生成しますか?マッピングの正しいhashCode()メソッドとequals()メソッドをnetbeansが自動的に生成できますか?

+0

:下の画像を参照してください。 – eatSleepCode

+0

「ハッシュコードと等価メソッドが必要ですか?」「do * I *それらを実装する必要がある」という意味ならば、それはあなたがしようとしていることに依存します。 [JavaでequalsメソッドとhashCodeメソッドをオーバーライドする必要があるのはなぜですか?]を参照してください(http://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-メソッド・イン・ジャワ)。 –

+0

'ManyToMany'マッピングを使用しているので、あなたはオブジェクトの' Collection'のパラメータになりますので、技術的にはequalsメソッドとhashcodeメソッドが必要になります。したがって、 'equals'メソッドの実装を決める必要があります。おそらく生成された' hashCode'メソッドを使うことができます。 – eatSleepCode

答えて

0

はい、IDEで生成されたハッシュコードを使用して2つのインスタンスを比較できます。大事なのはequalsメソッドですが、等価のために比較されるパラメータに注意を払うだけで十分です。自動生成されたコードはすべてのパラメータを比較しますが、一意に識別するためのパラメータはほんのわずかです。

DBから読み取られたレコードが同じエンティティであるかどうかを確認する必要がある場合は、equalsメソッドの主キーと比較するだけです。平等基準を選択することは完全にあなたの裁量です。

3

はい、できます。

オブジェクトが作成されたクラス内を右クリックし、挿入コードを選択するだけです。 「Generate」という小さなメニューには、equals()やhashCode()の中からさまざまなオプションがポップアップされ、選択してprestoすると、NetBeansによってコードのオーバーライドが生成されます。 equalsメソッドをテストすると、今度は動作します。

NB。 「equals()とhashCode()」を選択すると、ダイアログボックスが表示されます。処理したいすべての変数が両側のボックスに表示されます。あなたは2つのオブジェクトを比較する実行している場合にのみ、 `equals`と` hashCode`が必要になります

Generate equals() and hashCode on NetBeans

関連する問題