0

次のように、 Personという単純なクラスがあります。

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;
    ...
}

また、Stateは、 ID名前のみを含む単純なクラスであり、すべてのマッピングファイルを構成して機能させています。

最後のPersonState (日付に基づく)のStateid = 5(たとえば)であるPersonを取得したいので、HQLクエリはどのようになります?ありがとう!

4

1 に答える 1

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 = ?
于 2011-01-30T21:39:10.777 に答える