金蝶EAS,实体视图(EntityViewInfo)使用,数据查询无需编写SQL
对于绝大多数的业务,都可以用实体视图的方式获取数据,无需编写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);
金蝶EAS,实体视图(EntityViewInfo)使用,数据查询无需编写SQL相关推荐
- 金蝶EAS,列表界面ListUI数据过滤,按照财务组织数据隔离
列表界面数据按照财务组织数据隔离. getQueryExecutor为框架提供的方法. /*** 数据按照财务组织进行数据隔离*/ @Override protected IQueryExecutor ...
- 金蝶EAS客户端List界面列表数据不合并的方法
一.数据修改之前,根据会议时间字段自动进行了合并 二.不允许数据自动合并的方法:tblMain.getGroupManager().setGroup(false); 三.设置后的效果如下:
- 数据查询必备技能SQL调优:Mysql什么情况下不走索引
背景分析 今天领导在查询报表时,发现特别慢,于是引发一系列关于sql优化的工作,最终发现是分析同学在进行多表关联时进行不等值关联造成全表扫描,且使用字段无索引造成1W条数据表和20W数据表关联时执行缓 ...
- left join左表百万数据查询慢_Spark SQL 之 Join 实现
正好最近跑一些spark sql ,重新温习了遍有关联合查询的一些底层实现,参考这位博主的分享Spark SQL 之 Join 实现 Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分 ...
- (Java数据库编程基础操作)Statement实现数据查询操作
Statement实现数据查询操作 在整个数据库的开发过程之中数据的查询操作是最复杂的,因为查询会牵扯到各种复杂查询的管理,例如:多表查询.子查询.统计查询.集合操作等等,但是从现代的开发来讲,对于数 ...
- 金蝶EAS系统,员工、职员、人员、用户、职位等基础数据查询
金蝶EAS职员信息查询,又称员工.人员等:职员与用户为不同的实体,一个职员可以对应多个用户:用户也可以不对应职员: 职位关联行政组织,任职情况关联职位,职员兼职时,会在任职情况表中有多行记录,其中主职 ...
- 金蝶EAS,查询分析器,分页查询,获取6500行之后的记录
由于金蝶EAS系统中,查询分析器默认单次最多返回6500行数据,如需在查询分析器中查看6500行之后的数据时,需要进行分页查询: 分页查询时,先写出查询语句,该查询语句包含所有结果记录,可以将结果集看 ...
- 基于SqlServer的DML(数据查询)实验,掌握select查询语句的使用、掌握有无条件查询、结果排序与分组、掌握视图用法
实验三 数据库的查询一.实验目的及要求 1. 熟练掌握SELECT查询语句的使用 2. 掌握无条件.有条件查询及查询结果排序与分组 3. 掌握视图的用法二.实验任务 1.掌握查询语句的一般格式. 2. ...
- 19_clickhouse,数据查询与写入优化,分布式子查询优化,外部聚合/排序优化,基于JOIN引擎的优化,SQL优化案例,物化视图提速,查询优化常用经验法则,选择和主键不一样的排序键,数据入库优化
25.数据查询与写入优化 25.1.分布式子查询优化 25.1.1.分布式表的IN查询示例1(普通IN子查询.IN子查询为本地表) 25.1.2.分布式表的IN查询示例2(普通IN子查询.IN子查询为 ...
最新文章
- 十大经典排序算法Python版实现(附动图演示)
- [Eclipse]代码已被写入关于如何切换到unix在新行
- LPC2132的IOPIN
- 代码传奇 | 明明可以靠颜值 却用代码把人类送上了月球的女人——Margaret Hamilton
- python中cmd是什么_python中的cmd是什么
- python时间模块设置_Python之时间和日期模块
- 如何掌握所有的程序设计语言?
- 猪八戒玉华王:老码农的7项灵魂思考
- HarmonyOS 开发避坑指南
- 蔚来辅助驾驶致死,副总裁沈斐或遇更大危机
- cuSPARSE库:(九)cusparseSetStream()
- emmap erlang_erLang学些笔记2—基本类型
- 排序算法之十 希尔排序(C++版本)
- qq邮箱foxmail imap服务器,foxmail登录imap服务器提示失败。怎么办?
- 访问页面出错:The requested URL / was not found on this server. 网站打开出现404
- 20 《叫魂 : 1768年中国妖术大恐慌》 -豆瓣评分9.2
- 数据库上机2(以图形化界面方式操作数据库系统)
- Nodejs日志库winston配置
- 微型计算机集成化,微型计算机的什么集成在微处理器芯片上
- 【读点论文】Masked Autoencoders Are Scalable Vision Learners 完型填空应用到视觉处理上