2010-06-08 38 views
4

我试图拉回一组中具有特定类型项目的项目。休眠 - 列表中的类的限制

例如:

<class name="Owner" table="OWNER"> 
<id name="id" column="OWNER_ID" /> 
<set name="cats" table="OWNER_CATS" lazy="false"> 
    <key column="OWNER_ID" /> 
    <many-to-many class="Cat" /> 
</set> 

<class name="Cat" table="CAT" discriminator-value="C"> 
<id name="id" column="CAT_ID" /> 
<discriminator column="type" type="character" /> 

<subclass name="Lion" discriminator-value="L"> 
    <property name="teeth" /> 
</subclass> 
</class> 

使用限制,我怎么会得到谁拥有狮子当宠物所有者列表?

我试着沿以下无济于事线的东西:

criteria.createCriteria("cats").add(Restrictions.eq("class", Lion.class)); 

回答

5

目前(虽然我不知道这是故意的),这种工作方式是你必须指定鉴别值作为限制值,而不是类本身,所以:

criteria.createCriteria("cats").add(Restrictions.eq("class", "L")); 

在你的例子中。