Условие MySQL в предложении where именованного запроса JPA с атрибутом Nullable в качестве параметра - PullRequest
0 голосов
/ 18 июня 2011

Как можно указать условие в предложении where именованного запроса JPA для базы данных MySQL 5.1, если некоторые атрибуты, передаваемые в качестве параметра, могут быть обнулены?

Пример: таблица содержитattribute_1, который может быть обнуляемым, и attribute_2, который не может быть обнуляемым.Содержимое:

    id    attribute_1    attribute_2
    --    -----------    -----------
    1     {null}          123
    2     X               456

Результатом запроса должна быть запись 1, если: param_1 = null AND: param_2 = "123"

Результатом запроса должна быть запись 2, если: param_1 = "X "AND: param_2 =" 456 "

Запрос не должен иметь результата, если, например: param_1 =" X "AND: param_2 =" 123 "

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Я решил проблему с помощью собственного запроса. Я не могу заставить его работать с запросом JP-QL. Я использовал условие

AND IF(?1 IS NULL, b.attribute_1 IS NULL, b.attribute_1 = ?1)

в предложении where (? 1 - заполнитель для параметра).

0 голосов
/ 18 июня 2011

Для вашей первой строки вам нужно изменить предложение where в вашем запросе:

where attribute_1 is null

Использование = вместо этого не приведет к появлению строк, поскольку a = null всегда null.

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