Возврат дополнительных данных из HQL - PullRequest
2 голосов
/ 30 августа 2010

Я пишу HQL-запрос в форме:

from a where ... or exists (from b inner join b.c where ...) and ...

Я получаю обратно объект типа a из этого запроса.Однако мне также необходимо знать, вернулось ли условие exists в мой код позже или нет.Если бы это был SQL, я бы добавил его в список выбора.Тем не менее, даже если я добавлю в предложение HQL select, чтобы оно стало:

select a, exists (from b inner join b.c where ...) as x from a where ... or x and ...

В моем коде мне теперь приходится выбирать между просмотром нетипизированных данных или просмотром типизированных сущностей типа a и броскомпрочь мое значение x, которое пришло с ним.

Есть ли способ каким-то образом вернуть напечатанные данные плюс дополнительный столбец?

1 Ответ

3 голосов
/ 30 августа 2010

Здесь у меня есть два варианта:

1) Добавьте дополнительное свойство как свойство сопоставления только для чтения к вашей сущности, используя отображение formula для получения значения с использованием встроенногоsql или udf.

2) Получите обратно только те данные, которые вам необходимы, используя пользовательский запрос hql, и используйте aliastobeanresulttransformer для проецирования в строго типизированный dto, включающий ваши поля:интереса.

Какой путь вы выберете, действительно зависит от вас, но я склоняюсь к варианту №2, чтобы не загрязнять модель вашего домена ненужными полями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...