当前位置: 首页 > 面试题库 >

如何在Hibernate中进行SELECT查询包括子查询COUNT(*)

陆烨磊
2023-03-14
问题内容

假设我们有一个 类别-项目 一对多 关系。我想这样做

SELECT c.*, 
   (SELECT COUNT(*) FROM items i WHERE i.catId=c.id)
    AS itemCount
FROM category c

假设我们有一个Hibernate POJO“类类别”。

我的第一个问题是我真的无法弄清楚从该查询中我得到List 对象对吗?以及如何访问“ itemCount”?因为没有
Category.getItemCount()

其次,如何编写条件查询?

谢谢


问题答案:

似乎这是我正在寻找的答案(进入POJO):

@Formula(value="(SELECT COUNT(*) FROM Items i WHERE i.id = id)")
@Basic(fetch=FetchType.EAGER)
public Integer getItemCount() {
   return this.taskCount;
}


 类似资料:
  • 问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎是完全没有文档的,因此我绝对不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此我不得不在这里提出要求。 问

  • 问题内容: 将SELECT查询放在UPDATE查询的WHERE子句中时出现错误。 我的查询是这样的: AND错误将显示如下: “无法在FROM子句中指定目标表’m’进行更新” 问题答案: 实际上,您可以通过将其包装在子查询中来更新它(从而为结果创建临时表) 或使用 JOIN

  • 我将以下SQL作为本机查询运行,但我想知道是否有一种方法可以在JPAQuery中运行它,以便使用元组或类实例化。 为了精确起见,我使用了别名而不是qtypes。

  • 问题内容: 如何在jDBI中执行类似的操作? 表: foo(id int,name varchar) 与myBatis中的@SelectProvider相似。 问题答案: 这应该工作: 不要忘记用以下方法注释包含此方法的类: 注解(因为JDBI底层使用Apache StringTemplate进行此类替换)。还要注意,使用此注释,您不能在SQL查询中使用’<’字符而不进行转义(因为它是String

  • select 数据库查询select($table, $columns, $where) table [string] 表名. columns [string/array] 要查询的字段名. where (optional) [array] 查询的条件.select($table, $join, $columns, $where) table [string] 表名. join [array] 多

  • select 数据库查询select($table, $columns, $where) table [string] 表名. columns [string/array] 要查询的字段名. where (optional) [array] 查询的条件.select($table, $join, $columns, $where) table [string] 表名. join [array] 多