как преобразовать приведенный ниже собственный запрос в queryDSL. У него есть подзапрос, из которого будет получен фактический набор результатов.

Я пытаюсь преобразовать приведенный ниже запрос в 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;

person sdollani    schedule 03.02.2015    source источник


Ответы (1)


Используйте PathBuilder и выберите элементы из подзапроса, используя метод get. Объявите путь как PathBuilder<Tuple> ha = new PathBuilder<>(Tuple.class, "ha"). Думайте об этом как о создании псевдонима ha для вашего подзапроса. Затем псевдоним подзапроса к пути с помощью .as(ha) на объекте подзапроса. Наконец, ссылайтесь на столбцы, используя ha.get(tableName.columnName).

person Robert Bain    schedule 05.02.2015