2011-08-31 58 views
1

我想在某些条件下或者如果它们的父级是特定类型的过滤对象。Hibernate Criteria按父级过滤

class A {} 

class B extends A {} 

class O { 
    A a; 
    long n; 
} 

我希望所有O对象,其中n > 100a is of type B

Criteria会是什么or条件

回答

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

我已经当选择一个单表继承类型(使用鉴)尽管错误,并在那里我不得不使用

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

请注意,class是一个隐含的属性。你不需要在实体中定义任何特殊的东西来使其工作。

+0

我该怎么做了'或'? – ssedano

+0

Restrictions.or或Restrictions.disjunction。 –

0

您可以使用 “限制” 类型来创建一个标准...

从我的经验,

它应该像下面

Restrictions.ge( “N”)

对不起....不记得在限制下的确切函数名...你可以从javadoc中检查。

和对象比较,它的不同之处在于,你可以使用“EQ”,并给予对象的限制以同样的方式...