Hibernate Criteria按父级过滤

时间:2011-08-31 08:50:27

标签: java hibernate

我想基于某些条件过滤对象,或者他们的父对象是特定类型。

class A {}

class B extends A {}

class O {
    A a;
    long n;
}

我希望所有O个对象都在n > 100a is of type B

Criteria or条件

2 个答案:

答案 0 :(得分:1)

Restrictions.eq("a.class", B.class)

虽然选择了单表继承类型(使用鉴别器),并且我必须使用

,但我遇到了错误
Restrictions.eq("a.class", B.DISCRIMINATOR_VALUE)

请注意class是隐式属性。您无需在实体中定义任何特殊内容即可使其正常工作。

答案 1 :(得分:0)

您可以使用“限制”类型来创建条件......

根据我的经验,

应该是下面的内容

Restrictions.ge(“n”,)

抱歉....不记得限制条件下的确切功能名称...您可以从javadoc查看。

对于对象比较,它是相同的方式,除了你可以使用“eq”并将对象作为限制...