Использование сопоставления JPA для сложных запросов - PullRequest
0 голосов
/ 26 августа 2018

У меня есть следующие объекты

  • Сотрудники: id, empId, имя, фамилия, возраст

  • EmployeeAttendence: id, empid (FK), дата, subjectId (FK), wasPresent

  • Subject: id, subjectName

Требуется запрос: - Для всех сотрудников в возрасте от 30 до 40 лет выясните, присутствовали ли они между датами d1 и d2, для subjectId = 5. Если сотрудник не присутствовал, то запись должна существовать в операционном режиме, но с пустой переадресацией внимания

Есть ли смысл в использовании JPA для такого рода вещей? Или я должен просто использовать простой SQL.

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, вы немного сбиты с толку, почему JPA полезен.

Преимущество, которое вы получаете от JPA, заключается в том, что у вас будет много функций, которые помогут вам изменить данные в вашей базе данных.Вы получите параметры управления параллелизмом (явная блокировка / неявная блокировка / оптимистическая / пессимистическая блокировка), механизм грязной проверки, кэширование, динамические обновления, прозрачное пакетирование JDBC и многое другое.

Для чтения данных , конечно, вы можете использовать свои объекты, но это применимо только для простых вариантов использования.Если производительность также зависит от вас и требует немного более сложных запросов, тогда у вас есть возможность использовать JPQL, а если это невозможно, то собственный SQL.Для чтения я предпочитаю использовать проекции DTO, так как это оказывает огромное влияние на производительность по сравнению с использованием чистых сущностей.

Для дальнейшего чтения:

https://blog.arnoldgalovics.com/using-projections-in-your-data-access-layer/ https://blog.arnoldgalovics.com/how-much-projections-can-help/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...