1

EclipseLink ユーザー ガイドには、複合主キーのIdClass (埋め込まれていない) を構築する場合、引数のない public コンストラクターが必要であり、メソッドequalsおよびを実装する必要があると記載されていますhashCode。さらに、この例ではゲッターとセッターも実装しています。

Persistence WikiBookには、引数を持つ public コンストラクターがあり、引数のないコンストラクターはなく、getter と setter もありません。また、EclipseLink が および の実装を必要としないことを明示的に述べていequalsますhashCode

これらのうち、本当に必要なものはどれですか? EclipseLink がこれらを生成してくれるので、属性だけでコンストラクターもメソッドも持たない最小限の IdClass を使用できますか? これはEclipseLinkのバージョンに依存していますか?

4

1 に答える 1

2

引数のないコンストラクターのみが必要です (別のコンストラクターが定義されていない限り、Java によって生成されます)。属性のみを持つ最小限のクラスを使用できます。

ただし、EclipseLink はこの場合 (ウィービングを使用しても) 何も生成しません。つまり、ハッシュまたは等号ベースの操作で予期しない問題が発生する可能性があります。

于 2016-08-19T20:36:26.830 に答える