Hibernate HQL Query Null Columns - PullRequest
       18

Hibernate HQL Query Null Columns

2 голосов
/ 30 ноября 2010

У меня есть простой запрос HQL SELECT.Когда столбцы не равны NULL, я могу получить записи.Но если один из столбцов является нулевым, я не получаю ту запись, которая имеет нулевой столбец.

Вот пример запроса HQL:

SELECT p.name as name, p.price as price
FROM  Pets p

Если имя или цена нулевыеУ меня нет записи для этой конкретной записи.Я думал, что Hibernate просто вернет нулевое значение для этого столбца, когда он нулевой?

Как указать альтернативное значение, если столбец пуст?

Я проверил это с помощью консоли Hibernate.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

Это может быть поздний ответ. Но надеюсь, что это поможет кому-то еще!

Я думаю, что здесь hibernate дает вам массив List of Object со всеми NULL-элементами. Если вы хотите увидеть это, просто попробуйте распечатать размер списка результатов и массива, чтобы узнать это.

Еще один способ - изменить ваш код, как показано ниже

SELECT new Pets(p.name, p.price)
FROM  Pets p

Также добавьте конструктор для компонента Bets для задания имени и цены.

Теперь вы можете видеть бобы Pets в списке с нулевыми значениями для имени и цены. Смотрите здесь , чтобы узнать больше о частичной инициализации bean-компонентов в HQL.

0 голосов
/ 30 ноября 2010

Две вещи для подтверждения:

  1. Ваша модель называется Pets, верно? Или это Pet?
  2. Вы действительно хотите только эти два свойства? Обычный способ - получить полный объект, например from Pet.

Но даже это должно работать нормально (при условии, что модель называется Pets). Есть ли у вас какие-либо исключения, или вы просто получаете пустой список? Какой SQL генерирует hibernate (вы можете увидеть это, установив для свойства hibernate.show_sql значение true). Если вы запускаете этот SQL вручную в своей базе данных, вы получаете какие-либо записи?

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