База данных запросов с JPA для нулевых значений - PullRequest
0 голосов
/ 08 декабря 2018

Значение в базе данных может быть иногда NULL, а иногда нет.Как я могу получить это?Это моя попытка, которая удивляет меня:

@Repository
public interface AddressRepo extends JpaRepository<Address, Long>{

    @Query("select count(a) > 0 from Address a where a.street = :street")
    boolean testtest(@Param("street") String street);
}

test OK:

// given
address = new Address("WIELKA WARSZAAAWA", "Bokserska", "xxx", "50-500");
// when
addressRepo.save(address);
// then
assertTrue(addressRepo.testtest("Bokserska")); // OK

test не пройден:

// given
address = new Address("WIELKA WARSZAAAWA", null, "xxx", "50-500");
// when
addressRepo.save(address);
// then
assertTrue(addressRepo.testtest(null)); // cuz false!

1 Ответ

0 голосов
/ 20 декабря 2018

JPQL не может перевести этот оператор:

WHERE a.street = null

В этот SQL:

WHERE a.street IS null

Итак, вам нужно создать новый @Query:

select count(a) > 0 from Address a where a.street IS NULL

Монтирование вручную строки JPQL или использование критериев для создания динамического запроса также являются хорошими вариантами.

...