Нужно ли проверять все поля в методе equals модельного класса в JPA? - PullRequest
2 голосов
/ 15 апреля 2010

Нужно ли проверять все поля в методе equals класса модели в JPA, или я могу использовать только id?

Ответы [ 3 ]

4 голосов
/ 15 апреля 2010

Нет, нет необходимости помещать все ваши поля в метод equals только потому, что вы используете JPA. Фактически, JPA-специфичные поля, которые вы можете игнорировать.

Вам нужно решить, что лучше всего подходит для вашего приложения, но довольно часто исключают ваши поля @Id и @Version. Включите только те поля, которые отличают один экземпляр объекта от другого: по существу, поля, которые образуют ключ.

2 голосов
/ 15 апреля 2010

не всегда. Вы должны четко видеть, какие поля образуют собственный (бизнес) ключ, и сравнивать только эти поля. Иногда все поля образуют собственный ключ, иногда нет.

Прочтите это обсуждение на форуме hibernate о стратегиях реализации equals и хэш-кода .

0 голосов
/ 15 апреля 2010

Я бы проверил только идентификатор. В случае, если оно равно null (не задано), как в случае только что созданных объектов, я бы полагался на стандартную реализацию equals (сравнение ссылок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...