@springboot777

Как при помощи JpaRepository выполнить строку?

У меня есть сложный составной запрос WHERE
мне его нужно подставить в JpaRepository но когда я его подставляю JpaRepository добавляет кавычки
@Repository
public interface ApartmentRepository extends JpaRepository<Apartment, Long>{

    @Query(value = "SELECT COUNT(*) FROM `apartment` WHERE 1=1  :query", nativeQuery = true)
    long countByQuery(@Param("query") String query);
}


Использую так:
long count = apartmentRepository.countByQuery(" AND city = 1");
Выдает ошибку
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' AND city = 1'' at line 1


Как выполнять кастомную строку в JPA?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
То что вы пытаетесь сделать называется - SQL-injection. Почитайте для интереса сколько сайтов было взломано только потому что возможно было подставить какую-то строку в SQL-запрос и таким образом повлиять на его результат.

Поэтому JPA (да и вообще Hibernate) вам этого не позволит. Да вам этого и не нужно. Сформулируйте нормально проблему, которую хотите решить и задайте другой вопрос - получите совет как сделать это без подобных извращений.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы