Как я могу использовать @DiscriminatorColumn в методе equals объекта? - PullRequest
0 голосов
/ 16 октября 2011

На самом деле вопрос в названии.

Объекты будут отображаться в комментариях для различных объектов в системе (узлы блога, комментарии и т. Д.) поэтому я хочу иметь возможность работать с этим столбцом (прочитайте его значение для построения дерева комментариев для определенного типа типа объекта Commented. Также я хочу добавить @DiscriminatorColumn в методы equals и hashcode.
Каков наилучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 17 октября 2011

DiscriminatorColumns предназначены для наследования, экземпляр класса A неявно не равен классу B, поэтому я не понимаю, зачем вам это делать ??

равно () обычно делает,

if (object instanceof Foo) {
  return ...
} else {
  return false;
}
0 голосов
/ 16 октября 2011

Эта проблема возникает, когда вы загружаете объект, значение дискриминатора всегда равно нулю. Таким образом, если вы попытаетесь добавить значение дискриминатора в equals, вы можете получить нулевой указатель, поэтому сделать это можно двумя способами: -

  1. Во-первых, всякий раз, когда вы используете дискриминатор, у вас есть определенные подклассы, тогда на основе подклассов вы можете приравнять два объекта.
  2. Вы можете добавить своего рода временную переменную в вашей сущности, а затем при отображении вы можете insert="false" update="false" добавить к этому атрибуту, что сделает ваш атрибут доступным только для чтения, а затем для этого атрибута вы можете поставить равные.

Например: -

private String tempDiscriminatorValue;
<property name="tempDiscriminatorValue" type="string" column="DISCR_VAL" insert="false" update="false"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...