Він відповідає за взаємодію з базою даних.
Нижче наведено типовий шаблон проєкту.
Application←→DAO←→Database
Методи об'єкта доступу до даних (DAO)
- save()
- findById()
- findAll()
- update()
- delete()
- deleteAll()
Що потрібно для JPA entityManager?
Для цього потрібне джерело даних, яке визначає інформацію для підключення до бази даних.
Як створюються JPA entityManager та джерело даних?
- JPA entityManager і джерело даних автоматично створюються Spring Boot на основі файлу application.properties.
- Ми можемо автозаповнити entityManager для DAO у застосунку.
DAO←→entityManager ←→dataSources ←→database
Як зрозуміти, коли використовувати JPA, а коли entityManager?
- Якщо вам потрібен низькорівневий контроль і гнучкість, використовуйте entityManager.
- Якщо ви хочете високий рівень абстракції, використовуйте JPA репозиторій.
EntityManager:
- використовується, коли потрібен низькорівневий контроль над операціями з базою даних і потрібно писати власні запити.
- Надає низькорівневий доступ до JPA і працює безпосередньо з сутностями JPA.
- Складні запити, які потребують розширених функцій, таких як SQL запити або виклики збережених процедур.
- Коли є спеціальні вимоги, які не можна легко вирішити за допомогою високорівневої абстракції.
JPA:
- Надає стандартні операції CRUD «з коробки», зменшуючи кількість коду.
- Надає додаткові функції, такі як пагінація та сортування.
- Генерує запити на основі імен методів.
- Також можна створювати власні запити за допомогою анотації @Query.
Ми можемо використовувати і JPA, і entityManager в одному проєкті.
Перекладено з: Data Access Object (DAO)