2

我有A类,子类BC
我正在使用InheritanceType.SINGLE_TABLE并且一列type被用作 DiscriminatorColumn。

早些时候,B类有DiscriminatorValue("1")C类有DiscriminatorValue("2")。我在表中有大约 100 多个条目,并且一切正常。

现在,我又创建了一个AD的子类。但我希望它有DiscriminatorValue("1"),所以我将BC的 DiscriminatorValues分别更改为 2 和 4。我还用适当的值
更新了数据库列类型。

但是现在当我运行应用程序时,我得到了以下异常:

org.hibernate.WrongClassException: Object with id: 9 was not of the 
specified subclass: com.example.D (Discriminator: 1)

会有什么问题?

4

2 回答 2

3

没关系。我解决了这个问题。persistence.xml文件中的 D 类条目丢失。现在,它工作正常。

于 2013-01-04T03:19:59.690 回答
1

在我的例子中,我在数据库中添加了一些硬编码的值,并为插入查询中的鉴别器值编写了“Guest”。

我的错误是我将Guest类注释为具有“guest”(小“g”)作为鉴别器值,并将客人添加到具有“Guest”鉴别器值的数据库中。

与一些可能的解决方案的良好链接:这里

我真的希望这可以帮助某人。

于 2017-04-21T19:20:04.943 回答