从 hbm 到 JPA 注释(子类)



我正在将代码更新为 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>
...

不好意思

最新更新