BusinessDataServiceHelper与QueryServiceHelper区别:原创
金蝶云社区-larryfan
larryfan
28人赞赏了该文章 9,773次浏览 未经作者许可,禁止转载编辑于2020年07月16日 17:20:12

1. 顾名思义,使用场景不同:BusinessDataServiceHelper用于业务对象数据的查询,QueryServiceHelper只是单纯的查ORM对象,可以多次join。比如按照实体名称查单据数据时,BusinessDataServiceHelper只需查单据主实体,查询结果带有单据体信息,而QueryServiceHelper主实体和单据体查询是分开查询的;

2. 查询过程不同:BusinessDataServiceHelper》DataManagerImplement(返回QuickDataSet,不可join)》DB.query》DBImpl;QueryServiceHelper》ORMImpl》ORMImplStandard(返回DataSet,可join)》MultiQuery.query》DBExt.queryDataSet》DB.queryDataSet》DBImpl;其中BusinessDataServiceHelper可多种缓存BusinessDataCache、DataEntityCache等。QueryServiceHelper使用了ORM实现DB的操作,不使用缓存,join利用了algo的分布式计算。

3. 提供方法不同:QueryServiceHelper有exist方法。BusinessDataServiceHelper没有;

4. 查询结果不同:QueryServiceHelper返回的PlanObject对象,不能作为保存对象。BusinessDataServiceHelper则可以;


赞 28