Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013_1 / КСТ / Разработка веб-приложений.pdf
Скачиваний:
160
Добавлен:
23.02.2015
Размер:
2.74 Mб
Скачать

11.7. Запросы сущностей

Есть два варианта запроса объектов в Java Persistence API:

Язык запросов Java Persistence query language (JPQL) является простым строковым языком, подобным SQL, для запроса объектов и их связей.

Язык Criteria API для создания с использованием языка программирования Java API безопасных по типам запросов объектов и их связей.

Каждый вариант JPQL и Criteria API имеет свои преимущества и недостатки.

Запросы JPQL обычно более краткие по сравнению с запросами Criteria. Они также более удобочитаемые по сравнению с запросами Criteria, и разработчики, знакомые с SQL, легко узнают синтаксис JPQL. Именованные запросы JPQL могут быть определены в классе объекта, использованием аннотаций языка программирования Java, или в дескрипторе развертывания приложения. Запросы JPQL не обеспечивают безопасность типов данных, тем не менее требуют приведения типов при поиске результата запроса в менеджере сущностей в период исполнения. Это означает, что ошибки приведения типов, не могут обнаруживаться во время компиляции. Запросы JPQL не поддерживают открытые списки параметров.

Запросы Criteria позволяют вам определять запрос на бизнес-уровне приложе-

ния. Так же, как это возможно в динамических запросах JPQL, запросы Criteria обеспечивают большую эффективность, поскольку динамические запросы JPQL должны разбираться всякий раз, когда они исполняются. Запросы Criteria являются безопасными по типам данных, и следовательно, не требуют приведения типов данных подобно запросам JPQL. Criteria API — другой язык Java API, не требующий знания синтаксиса другого языка (например, SQL). Запросы Criteria обычно более избыточны по сравнению с запросами JPQL и требуют от разработчика создавать несколько объектов и выполнять операции на объектах перед передачей запроса менеджеру объекта.

128

Соседние файлы в папке КСТ