Могу ли я получить SQL-запрос со значениями заполнителей в JPA - PullRequest
0 голосов
/ 29 мая 2018

Я использую JPA с методом ниже.

    Query query = entityManager.createQuery(sqlQuery);
    queryBuilder.fillParametersToQuery(query);

Я хочу получить строку запроса SQL со всеми значениями-заполнителями.

1 Ответ

0 голосов
/ 29 мая 2018

Параметры запроса JPA

Параметры запроса JPA доступны в двух вариантах

  1. Обозначение позиционного параметра
  2. Обозначение именованного параметра

Обозначение позиционных параметров :

Как следует из названия, параметры запроса 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...