当前位置: 首页 > 知识库问答 >
问题:

Hibernate:更改子类的DiscriminatorValue将引发org.Hibernate.WrongClassException

舒俊雄
2023-03-14

我有类A和子类B和C。
我使用inheritanceType.single_table,一列type用作discriminatorColumn。

前面,B类有DiscriminatorValue(“1”),C类有DiscriminatorValue(“2”)。我有大约100多个条目在表中,所有的工作都很好。

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

会有什么问题?

共有1个答案

林俭
2023-03-14

算了吧。我想出了问题所在。persistence.xml文件中缺少类%D的条目。现在,它工作得很好。

 类似资料:
  • 我有MultivalueMap和TreeMap,它们都有String类型的键值。 我希望将MultivalueMap中的任何键更改为TreeMap中的键。 这是我的代码,为什么我会得到ConcurrentModificationException以及如何解决它?

  • 问题内容: 我将JPA2与Hibernate结合使用,并尝试为我的实体引入一个通用的基类。到目前为止看起来像这样: 但是,对于每个表,都有一个序列要用作序列生成器。我该如何在子类中进行设置?我想我需要重写@GeneratedValue并使用@SequenceGenerator创建一个新的SequenceGenerator。 问题答案: 是的,有可能。您可以使用注释覆盖默认的生成器名称。 基类 序列

  • 我已经冬眠来建立我的实体。对于开发人员环境,我希望Hibernate处理模式更新(主要是添加新列、删除或编辑列类型)。当添加新列时,Hibernate将添加它。从实体中移除字段不会导致列从数据库中删除。在我读到的一些帖子中,这是正常的行为。但是当我试图编辑实体字段的类型时,出现了一个问题: 这导致Hibernate添加一个类型为VARCHAR(255)的列,默认值为NULL,而NOT NULL为y

  • 我们刚刚开始使用Hibernate Envers,它可以很好地记录更改的内容,但是,有没有一种方法可以在更改发生时记录? 那么,它能否向audit表中添加一个datetime列呢? 根据Envers文档,默认情况下应该发生以下情况: 当Envers启动新的修订时,它会创建一个新的修订实体,该实体存储有关修订的信息。默认情况下,这只包括 null 谢谢

  • 问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的

  • 我有以下情况: 我想把所有动物都放在动物桌上。但是当我加载它们时,我想说它们是在哪个子类中加载的。在这种情况下,动物在理论上是抽象的。 这样的事情可能吗: 问题是,否则我看不出有任何可能从装载的动物投射到猫。:( 我用的是Hibernate4.2