Доступ к данным
В процессе разработки бизнес-логики бэкэнда необходимо загружать и сохранять сущности модели данных в базу данных. В этой главе описываются различные способы работы с сущностями с использованием API, которые предоставляются в Jmix.
См. также раздел Обзор возможностей, в котором рассматриваются концепции доступа к данным в Jmix. |
Основным интерфейсом для CRUD (Create, Read, Update, Delete) операций с сущностями является DataManager. Он позволяет загружать графы сущностей по идентификатору или запросу, сохранять измененные экземпляры или удалять их. Вы можете использовать слушатели событий сущностей для выполнения действий по загрузке и сохранению определенных сущностей. DataManager
поддерживает ссылки между сущностями из разных хранилищ данных как для JPA и DTO, так и для смешанных графов сущностей.
Чаще всего приложение работает с одной или несколькими реляционными базами данных, и для маппинга таблиц базы данных на классы Java используются сущности JPA. В этом случае DataManager
работает через JpaDataStore
на основе JPA провайдера EclipseLink. Такая реализация хранилища данных интегрирована с контролем доступа к данным, журналом сущностей и динамическими атрибутами. Она доступна в вашем проекте, если у вас есть следующая зависимость в build.gradle
:
implementation 'io.jmix.data:jmix-eclipselink-starter'
Когда в данном руководстве говорится о DataManager и его возможностях, имеется в виду наиболее общий случай работы с сущностями JPA, если явно не указано иное.
|
Другим вариантом работы с сущностями JPA является использование JPA EntityManager напрямую. Некоторые механизмы фреймворка несовместимы с концепцией "managed" сущностей, поэтому EntityManager
имеет ряд ограничений по сравнению с DataManager
.