如何在Hibernate中访问超类属性
我在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
<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()