Hibernate Criteria API и скалярные подзапросы - PullRequest
2 голосов
/ 15 февраля 2010

Я хочу перевести HQL-запрос в Criteria API, но я не знаю, возможно ли написать то же самое с помощью Criteria.

HQL выглядит так:

select distinct new DataTransferObject(property1, property2, ..., (select NVL(property3, null) from Table1 where property3 in elements(...) and ... ), property4, ..., (select .....), ...)
from Table2 as table2
left join table2.property5 as property5
(... more left joins ...)
where
.....

Я начал писать свои критерии так:

getSession().createCriteria(Table2.class, "table2")
.createAlias("table2.property5", "property5")
(...more createAlias...)
.add(Expression/Restriction
....

Затем я создал ProjectionList со всеми аргументами конструктора, кроме этих (select ...).

и в конце:

criteria.setProjection( projectionList).setResultTransformer( Transformers.aliasToBean(DataTransferObject.class) ) .list()

У меня вопрос, как добавить их (выбрать ...) в список projectionList ????

Я пытаюсь создать подзапрос в предложении select (скалярные подзапросы), а не в предложении where, но используя Criteria API

...