java,MySQL和Unknown专栏' DTYPE'在'字段列表'

时间:2015-08-24 13:24:59

标签: java hibernate inheritance save transient

我有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的实例。这失败了。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

我猜您已将@Entity添加到您的班级B。这将创建一个实体类层次结构 - 需要区分不同的实体类。如果删除注释,则不再需要该列。