【问题标题】:how to convert below native query into queryDSL. It has subquery where actual resultset will be populated from it.如何将以下原生查询转换为 queryDSL。它有子查询,将从中填充实际结果集。
【发布时间】:2015-02-03 21:55:40
【问题描述】:

我正在尝试将以下查询转换为 QueryDSL,我不知道如何从子查询结果集中获取实际结果。我只想按子查询结果集上的内容进行分组并从中填充实际结果集。

select ha.host_model, ha.MACHINE_TYPE, ha.END_OF_LIFE_DT,
                    ha.END_OF_SERVICE_LIFE_DT,
                    ha.END_OF_SALE_DT,
                    ha.END_OF_ENGINEERING_DT,
                    ha.SOFT_MAINTENANCE_END_DT,
                    ha.CONTRACT_RENEWAL_END_DT  from (
    SELECT distinct h.host_id,
                    h.host_model,
                    h.MACHINE_TYPE,
                    m.manufacturer_name,
                    o.host_platform,
                    e.END_OF_LIFE_DT,
                    e.END_OF_SERVICE_LIFE_DT,
                    e.END_OF_SALE_DT,
                    e.END_OF_ENGINEERING_DT,
                    e.SOFT_MAINTENANCE_END_DT,
                    e.CONTRACT_RENEWAL_END_DT
               FROM tf_host h
                    JOIN tf_eol e
                       ON h.eol_id = e.eol_id
                    JOIN tf_manufacturer m 
                       ON h.manufacturer_id = m.manufacturer_id 
                    JOIN tf_os o
                       ON h.os_id = o.os_id
              WHERE HOST_SERVERFLAG = 0) ha group by ha.host_model, ha.MACHINE_TYPE, ha.END_OF_LIFE_DT,
                    ha.END_OF_SERVICE_LIFE_DT,
                    ha.END_OF_SALE_DT,
                    ha.END_OF_ENGINEERING_DT,
                    ha.SOFT_MAINTENANCE_END_DT,
                    ha.CONTRACT_RENEWAL_END_DT
              order by ha.host_model;

【问题讨论】:

    标签: querydsl


    【解决方案1】:

    使用PathBuilder 并使用get 方法从子查询中选择元素。将路径声明为PathBuilder<Tuple> ha = new PathBuilder<>(Tuple.class, "ha")。将此视为为您的子查询创建别名 ha。接下来通过在子查询对象上使用.as(ha) 将子查询别名为路径。最后使用ha.get(tableName.columnName)引用列。

    【讨论】:

      猜你喜欢
      • 2012-10-12
      • 2021-11-02
      • 1970-01-01
      • 2021-12-26
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      相关资源
      最近更新 更多