Хранилище данных Spring с пустым предложением IN - PullRequest
0 голосов
/ 30 мая 2019

Я использую данные Spring JPA следующим образом:

    public interface SampleRepository extends CrudRepository<Sample, Integer>{

    @Query("SELECT s FROM Sample s WHERE ((:ids) IS NULL OR s.id IN (:ids))")
            List<Sample> queryIn(@Param("ids") List<Integer> ids);
    }

Но когда ids не пуст, я получил (1,2,3) значение NULL, что неверно в MySQL.

Если я напишу так:

    public interface SampleRepository extends CrudRepository<Sample, Integer>{
    @Query("SELECT s FROM Sample s WHERE s.id IN (:ids)")
            List<Sample> queryIn(@Param("ids") List<Integer> ids);
    }

Когда идентификатор пуст, я получил s.id в (ноль)

Если я должен использовать собственный запрос для этого. Есть предложения?

1 Ответ

0 голосов
/ 30 мая 2019

Полагаю, вы хотите использовать функцию ISNULL, чтобы узнать, имеет ли значение: ids или нет

SELECT s FROM Sample s WHERE s.id IN (:ids)) or ISNULL(:ids) = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...