我有以下 hql 查询:
JgrelhasListBack = session.createQuery("from Jgrelhas where jtabuleiros.id=? and id<? order by id desc").setParameter(0, tabuleiroId).setParameter(1, grelhaId).setMaxResults(limitenovo).list();
我需要获得最后 5 个结果,所以我所做的是按 desc 排序并获得最大结果 5。但我需要按 Asc 排序...
我找到了一个解决方案,就是这样进行查询:
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC
我试图在 hql 中复制它,但没有让它工作:
JgrelhasListBack = session.createQuery("select (select Jgrelhas from Jgrelhas where jtabuleiros.id=? and id<? order by id desc ) from Jgrelhas order by id asc").setParameter(0, tabuleiroId).setParameter(1, grelhaId).setMaxResults(limitenovo).list();
提前致谢
最佳答案
最简单的方法是反转 desc 有序列表:
List jgrelhasListBack = session.createQuery("from Jgrelhas where jtabuleiros.id=? and id<? order by id desc")
.setParameter(0, tabuleiroId)
.setParameter(1, grelhaId)
.setMaxResults(limitenovo)
.list();
return java.util.Collections.reverse(jgrelhasListBack);
关于mysql - Hibernate 选择子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399888/