Как я читал во многих статьях, когда я использую запрос JPA/Hibernate, хорошо устанавливать параметры в моих запросах, чтобы SQL-инъекция избегали. Например:
select user from User user where user.name = :name and user.surname = :surname
Моя проблема в том, что в некоторых случаях мне нужно использовать собственный запрос, когда я создаю свой запрос.
Я буду использовать менеджер сущностей и createNativeQuery
. Но в этом случае параметры будут позиционными. Например:
select * from users where user_name = ? and user_surname = ?
Тогда в моем запросе я буду использовать метод setParameter(1, "name")
и т. д. Так является ли этот случай "защищенным от внедрения SQL", как в параметризованном запросе?