如何在Hibernate中访问超类属性

如何在Hibernate中访问超类属性,hibernate,polymorphism,criteria,superclass,joined-subclass,Hibernate,Polymorphism,Criteria,Superclass,Joined Subclass,我在Hibernate中使用基本的每类表多态性。因此,我: <class name="SuperClass" table="SUPER"> <id name="anId" type="long"> <generator class="native"/> </id> <properties name="uniqueFields" unique="true"> <propert

我在Hibernate中使用基本的每类表多态性。因此,我:

<class name="SuperClass" table="SUPER">
    <id name="anId" type="long">
        <generator class="native"/>
    </id>

    <properties name="uniqueFields" unique="true">
        <property name="one" not-null="true"/>
        <property name="two" not-null="true"/>
    </properties>

    <joined-subclass name="SubClass1" table="SUB1">
        <key column="anId"/>
        <property name="other"/>
    </joined-subclass>

    <joined-subclass name="SubClass2" table="SUB2">
        ...
    </joined-subclass>

    ...

</class>
我得到一个堆栈转储,原因是:列名“one”无效

如果我基于SuperClass.class创建标准,它是可以工作的,但是需要添加适用于超类和子类的限制(而这段代码实际上隐藏在许多其他东西之下)


我可以拿到钥匙,但钥匙在两个地方都有声明。我不能从条件中的子类访问全局属性吗?我需要申报吗?或者某种类型的强制转换?

如果删除
,会发生什么情况?不确定,但该约束非常重要。通常,如果我在子类上创建一个条件,我是否应该能够访问super的元素?AFAIK是的,这应该是可能的,但是我只确定NHibernate,但它非常接近Hibernate
 createCriteria(SubClass1.class).add(Restrictions.eq("one", "VALUE")).list()