JPQL query - как использовать 'is null'

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

список rl = ЭМ.createQuery ("выберите o от человека как o, где o.адрес равен NULL").setFirstResult( 0).setMaxResults( 50).getResultList(); ...

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

класс человек { Адрес; Строковое имя; ... } адрес класса { Строковое имя; ... }

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

1 ответов


Как уже упоминалось, столбец адреса пуст, затем попробуйте использовать ПУСТ выражение вместо РАВНО 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) поскольку он не будет пропускать никаких результатов и без него, по умолчанию все совпадающие результаты будут извлечены.