Hibernate 需要HQL查询的帮助吗

Hibernate 需要HQL查询的帮助吗,hibernate,hibernate-mapping,hbm,Hibernate,Hibernate Mapping,Hbm,我有一个简单的类,叫做Person,如下所示: public class Person { private Integer id; private String name; private List<PersonState> states; ... } 而State是一个简单的类,只包含一个id和名称,我已经配置好了所有映射文件并正在运行 我想让那些人的最后一个人状态(基于日期)具有id=5的状态(例如),那么HQL查询是什么样的呢? 谢谢 类似这样

我有一个简单的类,叫做Person,如下所示:

public class Person {
    private Integer id;
    private String name;
    private List<PersonState> states;
    ...
}
State是一个简单的类,只包含一个id和名称,我已经配置好了所有映射文件并正在运行

我想让那些的最后一个人状态(基于日期)具有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 = ?
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 = ?