Эта проблема возникает, когда вы загружаете объект, значение дискриминатора всегда равно нулю. Таким образом, если вы попытаетесь добавить значение дискриминатора в equals, вы можете получить нулевой указатель, поэтому сделать это можно двумя способами: -
- Во-первых, всякий раз, когда вы используете дискриминатор, у вас есть определенные подклассы, тогда на основе подклассов вы можете приравнять два объекта.
- Вы можете добавить своего рода временную переменную в вашей сущности, а затем при отображении вы можете
insert="false" update="false"
добавить к этому атрибуту, что сделает ваш атрибут доступным только для чтения, а затем для этого атрибута вы можете поставить равные.
Например: -
private String tempDiscriminatorValue;
<property name="tempDiscriminatorValue" type="string" column="DISCR_VAL" insert="false" update="false"/>