= "select t1.id from table1 t1 join table2 t2 on table1.id = table2.table1_id "
+ " where (t1.column1, t1.column2, t2.column1) in (:filters)", nativeQuery = true)
public List<Object> findAllByFilters(List<List<String>> filters);
select t1.id from table1 t1 join table2 t2 on table1.id = table2.table1_id where (t1.column1, t1.column2, t2.column1) in (:filters) запрос такой. база postgres, конструкции такого вида валидны, проверял прямыми запросами в базу, но здесь выдает ошибку error near where. в гугле ничего нет про это
разве не нужно использовать алиасы в join on?
ну там да алиасы, при переписывании ошибся. но так тоже валидно если что
такое может быть если что-то не экранировано
если нативный запрос, то для параметров ? используется, а не : маппить результат можно на кастомные контракты, гугли spring data jpa projections
Это я знаю, но проблема же в том что просто запрос валится
потому что метод неправильный
валится, потому что List<List<String>> filters превращается в бинарные данные
Что именно?
вот здесь непонятно
Конструкция вида (col1, col2) in ((“a”, “b”), (“a”, “c”))
А точно такой сложный поиск надо делать в JPA? Может, это дело уже какого-нибудь elastic?
Да тут скорее, архитектурно неправильно что приходится делать запросы такого вида
перенос строки перед where
Обсуждают сегодня