В EclipseLink user guide указано, что при построении IdClass (не встроенного) для составного первичного ключа он должен иметь открытый конструктор без аргументов и реализовать методы equals
и hashCode
. Кроме того, пример, который он дает, также реализует геттеры и сеттеры.Каковы требования для IdClass в EclipseLink?
Persistence WikiBook имеет открытый конструктор с аргументами, не конструктор без аргументов, не добытчиками и сеттеров, и прямо говорится, что EclipseLink не требует осуществления equals
и hashCode
.
Какой из них действительно необходим? Могу ли я использовать минимальный IdClass только с атрибутами и без конструкторов и без методов, потому что EclipseLink будет генерировать их для меня? Это зависит от версии EclipseLink?
Значит ли это, что если не указывать 'hashCode' и' equals', равенство первичных ключей по умолчанию соответствует идентификатору объекта? И поэтому, что по сути, включая эти методы, все еще необходимо с EclipseLink? – oulenz
В принципе, да. И я предлагаю всегда указывать методы hashCode/equals', но он будет работать корректно даже без него в простых случаях использования (например, 'select * from ...' etc) –