2013-01-04 3 views
2

У меня есть @Entity -номинированный класс Model в моем приложении Play, который я набиваю в Set, чтобы обеспечить уникальность перед сохранением в базе данных. Поскольку объекты еще не сохранены, они не имеют значения ключа. Поэтому сравнение должно основываться на их свойствах.Можно ли реализовать equals() и hashCode() на классах @Entity Model в Play Framework?

Я понял вопрос о реализации equals() в JPABase, и он явно явно делает все объекты объектов неравными, если у них еще нет ключа.

Итак, мой вопрос (ы):

  1. Можно ли реализовать equals() и hashCode() в моих Model подклассов?
  2. Если да, то каков наилучший/правильный способ сделать это? Должен ли я позвонить super.equals() и как я должен обработать результат?

ответ

1

Я не рекомендую применять equals или hashCode в классе прикладной модели. В конце концов, уникальность должна быть обеспечена базой данных. С точки зрения приложения, уникальность почти всегда накладывается на определенное поле, например. имя пользователя или адрес электронной почты и т. д. Я никогда не встречал случая, когда уникальность объекта данных вычисляется по всему объекту с помощью метода hashCode или equals.

Смежные вопросы