我有2个类:A和B使B扩展A. 使用hibernate,A是一个普通的具体实体,带有一个关联的表,一切都很好。
定义B是为了扩展A,A和B是Serializable,并且有2个额外的成员,我有@Transient注释。我不希望将这些保存在数据库中,对于我所关心的所有内容,对我来说,该表中的所有行都只是A的实例,持久化。 目标是偶尔在会话中保存B实例。 但是在某些时候我需要在DB中保存B对象(就好像它是A)。我没有或不需要DiscriminatorColumn或类似的东西。
我尝试过这样的事情:
session.saveOrUpdate((A) b);
...用b作为B的实例。这失败了。
任何人都知道如何解决这个问题?
答案 0 :(得分:5)
我猜您已将@Entity
添加到您的班级B
。这将创建一个实体类层次结构 - 需要区分不同的实体类。如果删除注释,则不再需要该列。