当前位置: 首页 > 知识库问答 >
问题:

如何在Hibernate子查询中使用行数和顺序?

冯阳云
2023-03-14

选择e from(从表中选择e name e order by e.refid desc)作为表名e,其中(rownum)介于:satrt和:end之间

我得到的错误为"org.hibernate.hql.internal.ast.QuerySynTaxExcema:意外令牌:(近第1行,第15列"

Hibernate查询:从table_name其中rownum之间:start和:end顺序由refid desc

很好。但行号顺序会有所不同。

请建议如何编写hibernate查询。

共有1个答案

冀崇凛
2023-03-14

这是MySQL查询,根据您的要求获得结果,其中行号顺序不会改变。

select * from (SELECT round(@row_number:=@row_number+1) AS row_number,csh.* 
FROM table_name csh, (SELECT @row_number:=0) AS t ORDER BY id)t where 
row_number between 1 and 10;

在hibernate中也可以轻松地实现这一点,而无需使用查询定义的方法编写这样的子查询。此hibernate代码将生成与上述sql查询相同的结果集。

Root<table_name_entity> root = criteriaQuery.from(table_name_entity.class);
criteriaQuery.orderBy(builder.asc(root.get("ID")));
Query<table_name_entity> query = getSession().createQuery(criteriaQuery);
query.setFirstResult(0);
query.setMaxResults(9);
List<table_name_entity> list = query.list();
 类似资料:
  • 问题内容: 假设我们有一个 类别-项目 一对多 关系。我想这样做 假设我们有一个Hibernate POJO“类类别”。 我的第一个问题是我真的无法弄清楚从该查询中我得到List 对象对吗?以及如何访问“ itemCount”?因为没有 Category.getItemCount() 其次,如何编写条件查询? 谢谢 问题答案: 似乎这是我正在寻找的答案(进入POJO):

  • 子级有一个名为name的参数。因此,我希望使用一样进行查询,这样查询就会返回一个包含查询找到的所有子项的列表。 我想做这样的事情: 但是使用一个父级的子级,我会使用父级的id来搜索它。我不知道我是不是解释得很好,问题是我还没能实现班与班之间的衔接。 因此,我希望将defaultGroups分配给id为1的Compania,其中defaultGroup的名称类似于%x%。而我不知道如何做到这一点。谢

  • 我的桌子描述是 我的疑问是 如何使用hibernate执行此查询。Hibernate应该返回类型为的对象列表。?

  • 我必须得到特定的数据,如"角色"表已提交状态,我需要状态=1,所有数据从角色表

  • 问题内容: SELECT supplier_id FROM suppliers UNION ALL 我只是在查询的“ UNION ALL”子句上方和查询的“ UNION ALL”子句上方创建两个条件。 但是我的问题是我如何在条件中执行UNION ALL子句?提前致谢。 问题答案: 我认为hibernate不支持条件,但是您可以使用两个条件查询来获得预期的结果:

  • 我在mysql表中有一个int列,用于存储与状态相关的位。我对基于状态字段中是否设置了一个或多个位的查询感兴趣。 我尝试了以下方法: