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)
目前(虽然我不确定这是否是故意的)这种方式的工作方式是你必须将鉴别器值指定为限制值,而不是类本身,所以:
criteria.createCriteria("cats").add(Restrictions.eq("class", "L"));
Run Code Online (Sandbox Code Playgroud)
在你的例子中.