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是一个简单的类,只包含一个idname,我已经配置了所有映射文件并且可以正常工作。

我想获取最后一个PersonState(基于它的date)具有 id = 5 的State那些Persons(例如),那么 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 回答