МетодОписание
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 createQuery(CriteriaQuery criteriaQuery)Создает экземпляр TypedQuery для выполнения запроса с использованием критериев
TypedQuery createQuery(String jpqlString, Class resultClass)Типизированный запрос, передающий класс ожидаемых результатов
TypedQuery createNamedQuery(String name, Class resultClass)Типизированный запрос, передающий класс ожидаемых результатов
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 поддерживает привязку параметров и управление разбиением на страницы.

Листинг 6.21. Query API

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);

·· Query setParameter(Parameter param, T value);

Перейти на страницу:

Похожие книги