Data Access
When writing backend business logic, you need to load and store data model entities in the database. This chapter describes different ways of working with entities using APIs provided by Jmix.
See also the Key Features section to learn about Jmix data access concepts. |
The main interface for CRUD (Create, Read, Update, Delete) operations on entities is DataManager. It allows you to load graphs of entities by ID or query, to save changed instances or remove them. You can use entity event listeners to perform actions on loading and saving of particular entities. DataManager
maintains cross-datastore references for both JPA, DTO, and mixed entity graphs.
Most often, your application works with a single or multiple relational databases and you use JPA entities to map your database tables to Java classes. In this case, DataManager
works through JpaDataStore
based on EclipseLink JPA provider. This data store implementation is integrated with data access control, entity log and dynamic attributes. It is available in your project if you have the following dependency in build.gradle
:
implementation 'io.jmix.data:jmix-eclipselink-starter'
When we talk about See also the REST DataStore section for how to work with DTO entities mapped to a generic REST API of another Jmix application. |
Another option for working with JPA entities is using JPA EntityManager directly. Some framework features are not compatible with the concept of "managed" entities, therefore EntityManager
has some limitations comparing to DataManager
.