我想基于某些条件过滤对象,或者他们的父对象是特定类型。
class A {}
class B extends A {}
class O {
A a;
long n;
}
我希望所有O
个对象都在n > 100
或a is of type B
。
Criteria
or
条件
答案 0 :(得分:1)
Restrictions.eq("a.class", B.class)
虽然选择了单表继承类型(使用鉴别器),并且我必须使用
,但我遇到了错误Restrictions.eq("a.class", B.DISCRIMINATOR_VALUE)
请注意class
是隐式属性。您无需在实体中定义任何特殊内容即可使其正常工作。
答案 1 :(得分:0)
您可以使用“限制”类型来创建条件......
根据我的经验,
应该是下面的内容
Restrictions.ge(“n”,)
抱歉....不记得限制条件下的确切功能名称...您可以从javadoc查看。
对于对象比较,它是相同的方式,除了你可以使用“eq”并将对象作为限制...