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

如何在查询DSL中编写Union All查询

邬令
2023-03-14

需要实现sql查询,如:

SELECT A.class, A.section 
FROM 
STUDENT A 
INNER JOIN DEPARTMENT on A.student_id = B.id 
WHERE DEPT_NBR is not null
UNION ALL
SELECT A.class, A.section 
FROM 
TEACHER A 
INNER JOIN DEPARTMENT on A.teacher_id = B.id 
WHERE DEPT_NBR is not null

如何使用QueryDSL编写这样的语句?(我没有使用任何JPA)。任何帮助/提示都非常感谢!

共有1个答案

韶宏邈
2023-03-14

有很多例子可以帮助你。

public void union_multiple_columns() throws SQLException {
        SubQueryExpression<Tuple> sq1 = query().from(employee).select(employee.firstname, employee.lastname);
        SubQueryExpression<Tuple> sq2 = query().from(employee).select(employee.lastname, employee.firstname);
        List<Tuple> list = query().union(sq1, sq2).fetch();
        assertFalse(list.isEmpty());
        for (Tuple row : list) {
            assertNotNull(row.get(0, Object.class));
            assertNotNull(row.get(1, Object.class));
        }
    }

这个例子取自项目本身:https://github.com/querydsl/querydsl/blob/8f96f416270d0353f90a6551547906f3c217833a/querydsl-sql/src/test/java/com/querydsl/sql/unionbase.java#l73

 类似资料:
  • 问题内容: 我现在将Pure SQL转换为jOOQ 我必须在jOOQ中编写此代码,我们该如何编写? 问题答案: 实现您所请求内容的最直接的方法是使用: 另外,您可以显式表达该功能: 还有另一种方法来获取任意表达式,这可以帮助您避免在上述方法中指定结果列索引和类型。它使用: 但是请注意,这会呈现如下嵌套选择:

  • 我在mySql中有一个查询,我想在我的控制器中编写。 原因:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:应为CLOSE,在org.hibernate.internal.exceptionConverterImpl.convert(exceptionConverterIm

  • 当我按下搜索按钮时,出现以下错误: 发生错误: 异常[EclipseLink-4002](Eclipse持久性服务-2.3.2.v20111125-r10461):org。日食坚持不懈例外。DatabaseException内部异常:java。sql。SQLException:索引处缺少IN或OUT参数::1错误代码:17041调用:从CRM_DAILY_SHEET WHERE to_char(报

  • 问题内容: 谁能帮助我获取下面提到的JPA查询的JPA标准查询。 问题答案: 假设Person与语言有关,这就是您在较早的Hibernate中所做的事情: 我第一次尝试使用JPA 2.0: 请让我知道这是否适合您。 编辑: 更新查询以仅使用一个呼叫。

  • 问题内容: 我有以下sql查询,如何使用yii编写查询? 我没有使用,暂时正在避免使用它。 使用三个表,用户,类别和job_profile。 我已经编写了以下查询,但是我不知道如何包括join: 问题答案: $model = JobProfile::model()->with(‘userrelationname’,’categoryrelationname’)->findAll(array(“co

  • 我有一个sql查询: 这就产生了: Hibernate:选择this_.pName为y0_,this_.kNum为y1_,count(distinct this_.agentg)为y2_from Test_CPView this_where(低(this_.pName+“~”+this_.kNum)like?或低(this_.pName+“~”+this_.kNum)like?或低(this_.p