Hibernate - 列表中类的限制

Mat*_*oyd 4 sql hibernate criteria

我正在尝试撤回一组具有特定类型项目的项目列表.

例如:

<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>
Run Code Online (Sandbox Code Playgroud)

<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>
Run Code Online (Sandbox Code Playgroud)

使用限制如何获得有狮子作为宠物的所有者列表?

我尝试过以下几点无济于事:

criteria.createCriteria("cats").add(Restrictions.eq("class", Lion.class));
Run Code Online (Sandbox Code Playgroud)

Mat*_*ion 5

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

criteria.createCriteria("cats").add(Restrictions.eq("class", "L"));
Run Code Online (Sandbox Code Playgroud)

在你的例子中.