2

サブクラスBおよびCを持つクラスAがあります。 私はInheritanceType.SINGLE_TABLEを使用しており、1 つの列typeが DiscriminatorColumn として使用されています。

以前は、クラスBにはDiscriminatorValue("1")があり、クラスCにはDiscriminatorValue("2")があります。テーブルには 100 以上のエントリがあり、すべて正常に機能していました。

ここで、 ADのサブクラスをもう 1 つ作成しました。しかし、 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 に答える