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) поскольку он не будет пропускать никаких результатов и без него, по умолчанию все совпадающие результаты будут извлечены.