Мне нужен список с тремя столбцами. столбец 1-е и 3-е наличие оценивает, в то время как 2-й как пустой указатель. Я могу сделать это через запрос HQL?
Мне нужно что-то вроде этого:
select id, null, name from MyClass
Где MyClass, а также базовая таблица имеет только два свойства/столбцы т.е., "идентификатор" и "имя"
Другой вариант, который кажется работающим (протестирован на DB2, MySQL, Oracle и SQL Server):
select id, cast(null as char), name from ...
Вы можете создать подкласс диалекта Hibernate и абстрагировать его с помощью специальной функции:
registerFunction("always_null",
new SQLFunctionTemplate(Hibernate.STRING, "cast(null as char)"));
, а затем использовать это в вашем HQL:
select id, always_null(), name from ...
AFAIK, ваш запрос не вернет ожидаемый результат, он вернет только столбцы перед null
(id
в вашем случае). Однако, следующее будет работать
select id as first, '', name from MyClass
Я не знаю, является ли это ошибкой или просто не поддерживаемой функцией (тема HQL help: possible to "select NULL as ..."? на форумах Hibernate, кажется, предполагает, что это ошибка).
Я не уверен, что понял, зачем вам это нужно (может быть, альтернативой может быть выражение select new
?), но боюсь, что здесь вам придется использовать родной SQL.