Я могу выбрать пустой указатель как значение столбца в запросе HQL?

Мне нужен список с тремя столбцами. столбец 1-е и 3-е наличие оценивает, в то время как 2-й как пустой указатель. Я могу сделать это через запрос HQL?

Мне нужно что-то вроде этого:

select id, null, name from MyClass

Где MyClass, а также базовая таблица имеет только два свойства/столбцы т.е., "идентификатор" и "имя"

11
задан Pascal Thivent 3 August 2010 в 04:32
поделиться

2 ответа

Другой вариант, который кажется работающим (протестирован на 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 ...
15
ответ дан 3 December 2019 в 05:32
поделиться

AFAIK, ваш запрос не вернет ожидаемый результат, он вернет только столбцы перед null (id в вашем случае). Однако, следующее будет работать

select id as first, '', name from MyClass

Я не знаю, является ли это ошибкой или просто не поддерживаемой функцией (тема HQL help: possible to "select NULL as ..."? на форумах Hibernate, кажется, предполагает, что это ошибка).

Я не уверен, что понял, зачем вам это нужно (может быть, альтернативой может быть выражение select new?), но боюсь, что здесь вам придется использовать родной SQL.

1
ответ дан 3 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: