2011-01-30 14 views
0

次のように私は、と呼ばれる単純なクラスを、持っている:は、HQLクエリーとが必要です

public class Person { 
    private Integer id; 
    private String name; 
    private List<PersonState> states; 
    ... 
} 

をそして各PersonStateは以下のように定義されています。がある

public class PersonState { 
    private Integer id; 
    private State state; 
    private Date date; 
    ... 
} 

idの名前がの単純なクラスです。すべてのマッピングファイルが設定され、動作しています。

私はPersonState(それはだに基づいて)最後のものを 者を取得したい

ID(例えば) = 5、だから何のようなHQLクエリーだろうとを持っていますか? ありがとう!

答えて

1

このような何か:

SELECT p FROM Person p JOIN p.states ps1 
WHERE 
    ps1.date = (SELECT MAX(ps2.date) FROM PersonState ps2 WHERE ps2 MEMBER OF p.states) 
    AND ps1.state.id = ? 
+0

うん!それは私が意味するものです! –

関連する問題