Запрос к БД с использованием переменных котороые могут быть null
Метод для проверки количества одежды на складе с условием поиска.
Получаю две переменные для поиска в базе данных, если переменные со значениями метод работает (возвращает правильное кол-во), если одна или обе переменные null то метод не работает (возвращает 0).
public int availabilityCheck(TypeClothes typeClothes, Size size) {
String sqlGetQuantity = "select * from CLOTHES_REP where type_Clothes = " +
"case when " + "'" + typeClothes + "'" + " is null then type_Clothes " +
"else " + "'" + typeClothes + "'" +
" end " +
"and size = " +
"case when " + "'" + size + "'" + " is null then size " +
"else " + "'" + size + "'" +
" end;";
List<Clothes> clothesList = jdbcTemplate.query(sqlGetQuantity,
this::mapRowToClothes);
return clothesList.stream().mapToInt(Clothes::getQuantity).sum();
}
Источник: Stack Overflow на русском