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

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

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

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

может дубликат? stackoverflow.com/questions/1710476/…

Michal 29.05.2018 15:24

FWIW Запрос, который вы передаете createQuery, - это нет SQL

user3973283 29.05.2018 17:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
1 095
1

Ответы 1

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

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

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

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

Как следует из названия, параметры запроса JPA показаны числами, примером этого типа записи будет

SELECT e
FROM Employee e
WHERE e.salary > ?1

ВЫБЕРИТЕ e ОТ Сотрудника e ГДЕ электронная зарплата>? 1 Здесь? 1 - позиционный параметр, а 1 - его позиция. Если вы хотите выполнить этот запрос, вы должны установить значение параметра, используя позицию параметра.

query.setParameter(1, salary).getResultList();

query.setParameter (1, зарплата) .getResultList (); Этот оператор устанавливает значение параметров запроса JPA, указанных в JPQL, и выполняет запрос.

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

Параметры запроса JPA с обозначением именованных параметров следующие.

SELECT e
FROM Employee e
WHERE e.name = :name

ВЫБЕРИТЕ e ОТ Сотрудника e ГДЕ e.name =: имя Здесь: name - именованный параметр. Он будет содержать значение имени, переданное во время выполнения. Параметры таким запросам передаются следующим образом

query.setParameter("name",employeeName);

query.setParameter ("имя", employeeName); Здесь name - это имя параметра, указанное в запросе, а employeeName - это переменная типа String.

Другие вопросы по теме