我正在尝试从表中获取最高值,但该值必须在过去5天内设置。
下面的查询似乎有效,但我如何在Hibernate Query Laguage,HQL中编写它?
SELECT MAX(my_value) as my_value FROM Character WHERE create_date > now() + interval '-5 day'
我试图将上面的sql语句作为本机查询,但后来却抱怨某些字段无法找到(我猜Hibernate会尝试设置实体中的所有字段,但上面的sql只返回一个列/行名为'my_value')。
答案 0 :(得分:1)
你可以像下面这样做
首先使用java
获取过去第5天的日期Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR, -6);
Date d = c.getTime();
select c.my_value from Character c
where c.my_value =
(select max(cc.my_value) from Character cc where cc.create_date > d )
确保Character类正确地具有my_value和create_date属性,并在Character实体类中使用它们,而不是像在表中那样。