我正在将代码更新为 JPA,使用鉴别器时出现错误
@Entity
@DiscriminatorValue("3")
public class WidgetContainer extends Square {
...
}
方形.java
@Entity
@Table(name = "square")
@DiscriminatorColumn(name = "squareType", discriminatorType = DiscriminatorType.INTEGER)
@DiscriminatorValue("0")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Square implements Indexable, Serializable{
...
}
我收到此错误
org.hibernate.WrongClassException: Object with id: 1 was not of the specified subclass: sym.domain.Square (Discriminator: 3)
我遇到了类似的问题,通过添加此注释解决了:
@DiscriminatorOptions(force=true)
到继承结构的根(在您的情况下为正方形)。 我不知道是否有一种纯粹的 JPA 方法来实现这一目标。
Java API for DiscriminatorOptions
愚蠢的事情发生了...我想念将此子类添加到休眠配置
<bean id="sessionFactory"
name="sessionFactoriBla"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="annotatedClasses">
<list>
.......
<value>com.domain.WidgetContainer</value>
......
</list>
</property>
...
不好意思