Каковы требования для IdClass в EclipseLink?
В руководстве пользователя EclipseLink говорится, что при создании IdClass (не внедренного) для составного первичного ключа он должен иметь открытый конструктор без аргументов и реализовывать методы equals
а также hashCode
, Кроме того, пример, который он дает, также реализует методы получения и установки.
В персистенции WikiBook есть открытый конструктор с аргументами, без конструктора без аргументов, без методов получения и установки, и он явно заявляет, что EclipseLink не требует реализации equals
а также hashCode
,
Что из этого действительно требуется? Могу ли я использовать минимальный IdClass только с атрибутами, без конструкторов и методов, потому что EclipseLink сгенерирует их для меня? Это зависит от версии EclipseLink?
1 ответ
Требуется только конструктор без аргументов (который генерируется Java, если вы не определили другой). Вы можете использовать минимальный класс только с атрибутами.
Тем не менее, EclipseLink не будет генерировать что-либо в этом случае (даже с переплетением), что означает, что вы можете столкнуться с непредвиденными проблемами с операциями на основе хеша или на основе равенства.