2010-06-08 75 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")); 

在你的例子中。