JPQL-запрос --- как использовать 'is null' - PullRequest
11 голосов
/ 19 декабря 2010

Я использую следующий запрос в JPQL для запроса людей, чей адресный столбец пуст.

Список) .setFirstResult (0) .setMaxResults (50) .getResultList ();...

эта строка кода всегда возвращает пустой список, очевидно, в таблице есть записи, соответствующие условию.

class Person {Address address;Имя строки;...} адрес класса {имя строки;...}

кто-нибудь знает, что не так с этим утверждением jpql?заранее спасибо.

1 Ответ

19 голосов
/ 19 декабря 2010

Как уже упоминалось, столбец адреса пуст, затем попробуйте использовать выражение IS EMPTY вместо IS NULL .

em.createQuery( "SELECT o FROM Person o where (o.address.id IS NULL OR o.address.id = 0").setMaxResults(50).getResultList();

Проверить ограничение в соответствии с типом данных id.

Также нет необходимости упоминать setFirstResult (0) , поскольку он не пропускает никаких результатов и без него, по умолчанию будут выбраны все совпадающие результаты.

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