需要有关HQL查询的帮助

我有一个名为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和name,并且我已经配置了所有映射文件并且正在工作。 我想得到那些最后一个PersonState(根据它的日期)有一个id = 5的状态的人(例如),那么HQL查询会是什么样的? 谢谢!     
已邀请:
像这样的东西:
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 = ?
    

要回复问题请先登录注册