JPA — создание собственного запроса на чистом SQL

Создание собственного запроса на чистом SQL в JPA.

Используемые технологии
  • Spring 4.1.5.RELEASE
  • Hibernate 5.0.1.Final
  • JPA 2.1
  • MySQL 5.6.25
  • IntelliJ IDEA 14
  • Maven 3.2.5

1. Структура проекта

Настройки взяты из JPA – пример приложения Hello World, используемые здесь сущности взяты в измененной версии JPA – операции INSERT, UPDATE, DELETE.

2. Создание собственного запроса в JPA

Если вам требуется полный контроль над запросом, который будет отправлен базе данных, то вам необходимо создать так называемый NativeQuery — запрос на чистом sql. Для демонстрации такого запроса был создан метод findAllByNativeQuery:

Обратите внимание, что в запросе указываются не имена свойств из сущностного класса, а реальные имена столбцов из базы данных:

JPA Database

3. JPA — собственный запрос с отображением результирующего набора SQL

Еще одним способом создания собственного запроса является указание аннотации @SqlResultSetMapping над классом:

Здесь для сущностного класса было определено отображение результирующего набора SQL по имени nativeSqlResult с указанием в атрибуте entityClass самого класса Contact. В JPA поддерживается более сложное отображение для множества сущностей,а также отображение вплоть до уровня отдельных столбцов.

Запрос похож на предыдущий, только возвращаемый результат изменен с указания класса на имя, указанное в аннотации:

4. Тестирование запроса

 

Исходные коды

JPA Tutorial — NativeQuery

JPA SQL — база данных.

Share Button
5
15540 Total Views 2 Views Today

Добавить комментарий