在系统中定义了非持久化的实体,数据源来自于第三方系统或EXCEL。想实现增删改查的功能,是否需要自定义数据容器?或者采用其他什么方式实现?请赐教,谢谢!
CUBA 对数据的处理是有几层:DataManager/EntityManager
->DataLoader(DataContext)
->DataContainer
。真正对数据库的 CRUD 是在 DM/EM 层。
所以,具体到你的问题,这就需要看你们业务与软件架构的平衡了。可以实现类似 DM/EM 对外部数据处理,然后通过 CUBA 的这几层来传递,这样架构上更贴合一些。如果没有那么多精力,直接对 DataContainer 进行扩展也是可以的,直接通过容器中的 CRUD 把数据反映到 UI。
请问有相关的示例吗?
-
可以参考一下这个帖子:
https://www.cuba-platform.com/discuss/t/crud-screens-to-manage-an-external-application-exposed-using-rest-apis/2158
里面有一个自定义 DataStore 的示例。 -
也可以参考这个示例项目:
https://github.com/aleksey-stukalov/github-statistics
使用 DataLoader的代理机制从第三方源加载数据。
2 个赞
感谢。学习去!