Java 从hbm到JPA注释(子类)
我正在将代码更新为JPA,使用鉴别器时出现错误Java 从hbm到JPA注释(子类),java,hibernate,hibernate-mapping,hibernate-annotations,Java,Hibernate,Hibernate Mapping,Hibernate Annotations,我正在将代码更新为JPA,使用鉴别器时出现错误 @Entity @DiscriminatorValue("3") public class WidgetContainer extends Square { ... } Square.java @Entity @Table(name = "square") @DiscriminatorColumn(name = "squareType", discriminatorType = DiscriminatorType.INTEGER) @Dis
@Entity
@DiscriminatorValue("3")
public class WidgetContainer extends Square {
...
}
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的方式来实现这一点
愚蠢的事情总会发生。。。我不想将这个子类添加到hibernate配置中
<bean id="sessionFactory"
name="sessionFactoriBla"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="annotatedClasses">
<list>
.......
<value>com.domain.WidgetContainer</value>
......
</list>
</property>
...
.......
com.domain.WidgetContainer
......
...
抱歉什么时候会出现此错误?当在查询中获取鉴别器3时,可以显示该查询的代码吗?这是一种配置Hibernate如何实现鉴别器的方法,但我同意您的看法,它似乎不太正确,因为对象已正确注释。这似乎与JPA无关,自从你说你要去JPA了