Параметры запроса JPA
Параметры запроса JPA доступны в двух вариантах
- Обозначение позиционного параметра
- Обозначение именованного параметра
Обозначение позиционных параметров :
Как следует из названия, параметры запроса JPA показаны числами, примером такого типа обозначений будет
SELECT e
FROM Employee e
WHERE e.salary > ?1
ВЫБРАТЬ ОТ ОТ сотрудника e ГДЕ e.salary>? 1 Здесь? 1 - это позиционный параметр, а 1 - его позиция.Если вы хотите выполнить этот запрос, вы должны установить значение параметра, используя позицию параметра.
query.setParameter(1, salary).getResultList();
query.setParameter (1, salary) .getResultList ();Этот оператор устанавливает значение параметров запроса JPA, указанных в JPQL, и выполняет запрос.
Обозначение именованных параметров
Параметры запроса JPA с обозначением именованных параметров имеют следующий вид
SELECT e
FROM Employee e
WHERE e.name = :name
ВЫБРАТЬ e ОТ СОТРУДНИКА e ГДЕ e.name =: name Здесь,: name - именованный параметр.Он будет содержать значение имени, переданного во время выполнения.Параметры передаются в такие запросы следующим образом:
query.setParameter("name",employeeName);
query.setParameter ("name", employeeName);Здесь name - это имя параметра, указанное в запросе, а employeeName - переменная типа String.