金蝶EAS,实体视图(EntityViewInfo)使用,数据查询无需编写SQL

72 篇文章 23 订阅
24 篇文章 7 订阅

对于绝大多数的业务,都可以用实体视图的方式获取数据,无需编写SQL语句,而且实体视图通用于前端、后台;代码的可维护性胜过直接在后台(APP端、服务端)执行SQL语句;以下内容为业务举例。

数据查询,限定条件:
组织编码,1001;性别,男;工资水平,大于5000;按照人员编码倒序排列;
职员实体(Person)包含属性:编码(number)、组织(orgUnit)、性别(gender)、工资(salary);
其中,职员实体的组织(orgUnit)字段引用了组织实体(OrgUnit);

注:示例代码,并非标准产品中实际业务。

/*
数据查询,限定条件:
组织编码,1001;性别,男;工资水平,大于5000;按照人员编码倒序排列
职员实体(Person)包含属性:编码(number)、组织(orgUnit)、性别(gender)、工资(salary)
其中,职员实体的组织(orgUnit)字段引用了组织实体(OrgUnit)
*/
// 查询字段,不指定时查询本实体所有字段,包含引用属性时,自动进行关联(左连接)
SelectorItemCollection selector = new SelectorItemCollection(); //不指定时查询所有字段
selector.add(new SelectorItemInfo("*")); //当前实体的所有字段
selector.add(new SelectorItemInfo("orgUnit.id")); //引用字段(实体)的ID属性
selector.add(new SelectorItemInfo("orgUnit.number")); //引用字段(实体)的NUMBER属性
selector.add(new SelectorItemInfo("orgUnit.name")); //引用字段(实体)的NAME属性
// 过滤条件,相当于Where之后的条件部分
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("orgUnit.number", "1001")); //组织编码(自动与组织表进行关联)
filter.getFilterItems().add(new FilterItemInfo("gender", GenderEnum.MALE_VALUE)); //性别
filter.getFilterItems().add(new FilterItemInfo("salary", 5000, CompareType.GREATER)); //工资
// 排序,相当于Order by之后的语句部分
SorterItemCollection sorters = new SorterItemCollection();
SorterItemInfo sorter = new SorterItemInfo("number"); //排序字段
sorter.setSortType(SortType.DESCEND); //倒序
sorters.add(sorter);
// 构造查询视图(不指定视图时,返回所有数据)
EntityViewInfo view = new EntityViewInfo();
view.setSelector(selector); //查询字段(不指定时查所有字段)
view.setFilter(filter); //筛选条件(不指定时查所有数据)
view.setSorter(sorters); //排序(不指定时按默认排序条件)
PersonCollection coll = PersonFactory.getRemoteInstance().getPersonCollection(view);

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值