2011-08-31 63 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」,並給予對象的限制以同樣的方式...