【发布时间】:2011-12-08 15:06:20
【问题描述】:
实际上问题就在标题中。
实体将是系统中不同对象(博客节点、cmets 等)的地图评论
所以我希望能够使用此列(阅读它对于为特定类型的 Commented 对象类型构建评论树的价值。
我还想在equals 和hashcode 方法中添加@DiscriminatorColumn。
最好的方法是什么?
【问题讨论】:
标签: java inheritance jpa orm
实际上问题就在标题中。
实体将是系统中不同对象(博客节点、cmets 等)的地图评论
所以我希望能够使用此列(阅读它对于为特定类型的 Commented 对象类型构建评论树的价值。
我还想在equals 和hashcode 方法中添加@DiscriminatorColumn。
最好的方法是什么?
【问题讨论】:
标签: java inheritance jpa orm
每当您加载实体时,都会出现此问题,鉴别器值始终为空。因此,如果您尝试在 equals 中添加鉴别器值,您可能会得到空指针,因此有两种方法:-
insert="false" update="false" 映射到该属性,这将使您的属性只读,然后您可以为该属性放置等号。李>
例如:-
private String tempDiscriminatorValue;
<property name="tempDiscriminatorValue" type="string" column="DISCR_VAL" insert="false" update="false"/>
【讨论】:
DiscriminatorColumns是用于继承的,A类的实例隐式不等于B类,所以我不明白你为什么要这样做??
equals() 通常会做 a,
if (object instanceof Foo) {
return ...
} else {
return false;
}
【讨论】: