Метод | Описание |
---|---|
Query createQuery(String jpqlString) | Создает экземпляр Query для выполнения JPQL-оператора для динамических запросов |
Query createNamedQuery(String name) | Создает экземпляр Query для выполнения именованного запроса (с использованием JPQL или «родного» SQL) |
Query createNativeQuery(String sqlString) | Создает экземпляр Query для выполнения «родного» SQL-оператора |
Query createNativeQuery(String sqlString, Class resultClass) | «Родной» запрос, передающий класс ожидаемых результатов |
Query createNativeQuery(String sqlString, String resultSetMapping) | «Родной» запрос, передающий отображение результирующего набора |
Создает экземпляр TypedQuery для выполнения запроса с использованием критериев | |
Типизированный запрос, передающий класс ожидаемых результатов | |
Типизированный запрос, передающий класс ожидаемых результатов | |
StoredProcedureQuery createStoredProcedureQuery(String procedureName) | Создает StoredProcedureQuery для выполнения хранимой процедуры в базе данных |
StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class… resultClasses) | Запрос к хранимой процедуре, передающий классы, в которые будут отображаться результирующие наборы |
StoredProcedureQuery createStoredProcedureQuery(String procedureName, String… resultSetMappings) | Запрос к хранимой процедуре, передающий отображение результирующих наборов |
StoredProcedureQuery createNamedStoredProcedureQuery(String name) | Генерирует запрос к именованной хранимой процедуре |
При получении реализации интерфейса Query, TypedQuery или StoredProcedureQuery с помощью одного из фабричных методов в интерфейсе менеджера сущностей она будет контролироваться богатым API. API Query, показанный в листинге 6.21, задействуется для выполнения статических (то есть именованных) и динамических запросов с применением JPQL, а также «родных» запросов с использованием SQL. Кроме того, API Query поддерживает привязку параметров и управление разбиением на страницы.
public interface Query {
··// Выполняет запрос и возвращает результат
··List getResultList();
··Object getSingleResult();
··int executeUpdate();
··// Задает параметры для запроса
··Query setParameter(String name, Object value);
··Query setParameter(String name, Date value, TemporalType temporalType);
··Query setParameter(String name, Calendar value, TemporalType temporalType);
··Query setParameter(int position, Object value);
··Query setParameter(int position, Date value, TemporalType temporalType);
··Query setParameter(int position, Calendar value, TemporalType temporalType);
··