mysql - Hibernate 选择子查询

标签 mysql hibernate jboss hql

我有以下 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/

相关文章:

php - mysql插入(使用到期日期)

Hibernate session.close() 不返回连接到池

java - 收到错误消息说类未与命名查询映射

JBoss 中的 SSL session 恢复

mysql - 如何结束 mysql 连接而不让它卡在 NodeJS 中?

c# - VS 2017 中的 MySQL 和 MVC Entity Framework 无法正常工作

java - 部署时 PermGen 错误 Tomcat8/Spring Data/Hibernate

java - 将 WAR 部署到 WildFly 11 时出现奇怪的 ClassCastException

Java - 顺序异步执行

mysql - 与 MySQL 中的 Access/VBA CHOOSE 函数等效的功能