@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?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
То что вы пытаетесь сделать называется - SQL-injection. Почитайте для интереса сколько сайтов было взломано только потому что возможно было подставить какую-то строку в SQL-запрос и таким образом повлиять на его результат.

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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 11:14
65000 руб./за проект
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект