Hibernate Query, возвращающий нулевое значение - PullRequest
0 голосов
/ 27 сентября 2018

Я использую Hibernate / JPA для выполнения запроса ниже, и я ожидал, что строка 3 в таблице ниже будет возвращена, когда я передам нулевое значение в запрос.И EXPOSURE_TYPE, и MESSAGE_FORMAT определены как строки:

MESSAGE_FORMAT      EXPOSURE_TYPE
XSD.001.001.01      1       
XSD.001.001.01      2
XSD.001.001.01      null        <====expecting this to get returned when i set the value to null

Мой запрос:

Query q = em.createQuery("SELECT m FROM Message m WHERE m.messageFormat = :messageFormat AND m.exposureType = :exposureType");
q.setParameter("messageFormat", messageFormat);
q.setParameter("exposureType", exposureType);
try
{
    message = (Message) q.getSingleResult();

}
catch(NoResultException nre){
    //some logging
}
catch(Exception ex){
    //some logging
}
return message;

1 Ответ

0 голосов
/ 27 сентября 2018

Невозможно запросить для = null, который вы должны использовать - null.

Поэтому, если вы хотите найти EXPOSURE_TYPE со значением NULL, запрос должен выглядеть следующим образом:

EXPOSURE_TYPE is null

-

Подробнее об этой теме читайте здесь. что такое "= null" и "IS NULL"

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