数据访问

当编写后端业务逻辑时,需要从数据库读写数据模型 实体。本章节介绍使用 Jmix 提供的 API 处理数据的不同方式。

对实体进行 CRUD 操作的主要接口是 DataManager。基本功能包括通过 ID 或查询语句加载实体关系图、保存实体和删除实体。可以用实体事件监听器在加载和保存特定实体时做一些额外的操作。DataManager 中也维护了跨数据库的实体引用,包括 JPA、DTO 和混合实体的实体关系图。

多数情况下,应用程序使用单一或多个关系型数据库,代码中使用 JPA 实体作为数据库表和 Java 类的映射。此时,DataManager 使用基于 EclipseLink JPA provider 的 JpaDataStore。这个 data store 的实现集成了 数据访问控制实体日志动态属性。如果使用了下面这个依赖,则项目中可以使用:

implementation 'io.jmix.data:jmix-eclipselink-starter'
在此手册中,我们提到 DataManager,只要不是特殊说明,都是指使用 JPA 实体的最常见情况。

处理 JPA 实体的另一个方法是直接使用 JPA EntityManager。某些框架功能与 “托管” 实体的概念不兼容,因此,与 DataManager 相比,EntityManager 有一些功能上的 局限性