EMF学习笔记4——Query查询

EMF学习完整教程 EMF学习完整教程,EMF: Eclipse Modeling Framework Second Edition 立即下载

EMF查询框架主要由 org.eclipse.emf.query 这个plugin提供,创建并执行一个EMF查询,大概分为如下几步:
1,创建查询数据源;
2,构造EObjectCondition查询条件;
3,使用EMF查询框架提供的SELECT对象和UPDATE对象编写查询和更新语句;
4,执行语句得到查询或更新结果;
5,对执行结果进行检测,确保执行过程中没有发生异常。

EMF提供了两套Query对象,SELECT和UPDATE,分别用于模型的查询操作和更新操作。
SELECT对象的类图关系如下:

SELET对象结构图

类似SQL语句的from和where从句,SELECT对象的构建需要FROM和WHERE两个对象,分别代表查询范围和查询约束条件(EObjectCondition)。
除了这两个对象之外,SELECT对象还可能包含下参数信息:
maximumResultSize:设置查询的最大返回值;
cancellable:查询是否可撤销,默认值为true;
progressMonitor:查询监听器。

构建EMF SELECT查询代码大致如下:

其中FROM对象的构造参数可以是单一的EObject对象,也可以是Collection集合,还可能是IEObjectSource对象实例。
较为复杂的是WHERE对象的构建,或者说是其构造参数EObjectCondition约束条件的构建。

EMF查询框架预定义很多查询条件类继承至EObjectCondition,然而熟练的使用这些类并不容易,
还有一种方法是通过OCL约束表达式构造 BooleanOCLCondition 对象,如果熟练OCL语法,用此种方式相对比较容易。
但也有不足,就是OCL的解析速度相对较慢。

构造参数中,还可以不指定约束的上下文(即第3个构造参数为null),这样任何EMF实体如果含有category属性都会在该实体类上执行
"self.category <> BookCategory::Mystery implies self.pages < 200"约束检测。

当查询条件比较多的时候,可以通过EMF的核心查询框架将多个查询条件进行组合:

UPDATE对象继承至SELECT对象,除此之外还是用了SET对象进行赋值操作:

UPDATE对象结构图

构建EMF UPDATE操作代码也与SELECT类似,只是要在构造参数中添加SET对象来为实体赋值:

EMF-IncQuery-Addons:EMF-IncQuery模型查询框架的附加组件 EMF-IncQuery-附加组件 模型查询框架。 该存储库中的所有代码都可以在Eclipse Public License v1.0下获得: : 立即下载

相关推荐

Orale EBS R12 AP应付模块 发票导入接口(Interface)

ap_interface_groups_s.nextval; ap_invoices_interface_s.nextval; ap_invoice_lines_interface_s.nextval; SELECT * FROM ap_invoices_interface ih; SELECT * FROM ap_invoice_lines_interface il; SELECT * FROM...

qq_41206741的博客 3316

EMF学习系列之:初识EMF

以前看过GEF,这个东西不错,功能很强。作出来的东西也很专业。可使用GEF最大的问题就是建模和处理事件监听问题。 通常GEF模型中的监听功能主要是通过PropertyChangeListener来实现的。好多东西得自己写。有了EMF就好多了,EMF中所有由模型生成的类都继承自EObject,而EObject又实现了Notiffer类。这个"Notiffier"类就是实现监听机制的关键。本身

地狱咆哮 1806

WinForm多语言切换实战:5分钟搞定中英文界面(附完整代码)

本文提供了WinForm应用实现中英文界面切换的两种高效实战方案。通过利用内置的本地化机制和资源文件,开发者可以在5分钟内为窗体添加多语言支持,并附有完整代码示例,帮助快速应对软件国际化需求。

weixin_29230773的博客 406

EMF相关学习文档

开始本教程之前学习“What every Eclipse developer should know about EMF”。参考

一念天堂 586

ERA5 hourly data批量下载与cdo处理(一)

本篇文章主要介绍了ERA数据的批量下载

qq_40511689的博客 3871

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

java emf_EMF学习笔记一

EMF中的三个部分:元数据meta-data,代码生成code generation,默认序列化default serialization.EMF is part of the Model Driver Architecture(MDA).MDA是将整个应用软件生存周期的开发管理都集中于模型上。这种模型是用元模型(meta-model)定义的。然后,使用映射,模型被用于生成software art...

weixin_32429413的博客 488

数电发票“乐企直连”服务平台建设方案

数字化电子发票“乐企直连”服务平台建设方案

m0_73174802的博客 4853

使用 EMF Query 查询 EMF 模型

 EMF 是 Eclipse 组织推出的建模框架。它能够帮助我们将模型(UML, XSD等)转换成为健壮且功能丰富的Java 代码。通过使用 EMF,我们编写的程序能免费的获得一个健壮的模型层,它通常比我们自己手工编写的模型层更为健壮。事实上,有很多商业产品都使用了 EMF 来作为其模型层。由于 EMF 的广泛使用,Eclipse 组织为其推出了众多的周边模块。本文将要介绍的是一个基于 EMF

CS_Mercy的专栏 1074

深度学习实战42-基于大模型开发MathGPT的原理介绍,让数学问题智能解答变为可能

大家好,我是微学AI,今天给大家介绍一下深度学习实战42-基于大模型开发MathGPT的原理介绍,让数学问题智能解答变为可能。在去年ChatGPT的发布后,各种国内外的大语言模型层出不穷涌现,但是大家都知道现在的模型的诟病的数学能力不足,就算是简单的数学题都可能算错,今天我就来给大家引入MathGPT的模型,用来解决GPT解决数学问题,对于简单的初中数学高中数学都可以解决,让数学问题精准答题得到实现。

微学AI的博客 1649

从 Junior 到 Lead:ABAP 开发者进阶路线图与真实项目练级法

本文拆解了ABAP工程师从初级到高级的成长路径,强调能力提升依赖于可复用经验的积累。对于初级开发者,建议夯实ABAP Dictionary、内表处理和数据库思维三大基础,培养数据流与规则层的结构化思维,并逐步掌握面向对象编程。中级阶段应注重代码可维护性,通过单元测试和Clean ABAP规范提升工程质量。文章指出,ABAP开发者需要学会筛选学习重点,建立知识地图,并重视团队协作中的代码可读性。关键在于将碎片知识整合为可迁移的模型,而非盲目追求新技术。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 173

为什么要使用EMF

什么是EMF? EMF (Eclipse Modeling Framework) 是基于Eclipse的模型化框架。 为什么要使用EMF? 首要原因是EMF提供了非常清晰,可维护性很强的一套模型化方案和工具,通过定义meta model,可以自动生成实际模型(实际模型可以理解为是meta model的一个实例)。Meta model描述了模型的结构,EMF使用XMI来持久化meta

广告业的程序员 3180

建行报专版报道建设银行金融科技发展历程

经过十多年的建设,总行前中后台部门都有了自己的业务系统,但系统“部门”特征显著,渠道、客户、产品的横向整合不足,产品系统层次化、结构化、参数化程度不高,渠道支持产品快速部署以及跨渠道服务能力不足,管理分析类系统建设相对滞后,系统较弱的可扩展能力在应对高速增长的交易量时已疲态尽显,同时安全稳定运行的压力和风险日益积聚。站在新的历史起点上,科技条线将聚焦主责主业,完善信息科技管理体系,紧紧围绕安全生产中心任务,持续推动技术能力复用共享和自主可控,为全行做好金融五篇大文章,推动业务高质量发展提供技术支撑。

银行信息系统应用架构详解 384

围绕EMF探索(2)之再探查询组件

索引:围绕EMF探索(1)之存储和查询   围绕EMF探索(2)之再探查询组件        本篇专门讲讲EMF Query这个组件的设计原理、结构和算法。       在上一篇中,已经简单介绍了EMF Query,其是为“内存中的eObjects”的检索提供一套“查询条件”,可以依据eObject的结构关系进行查询,也可以依据eObject的对象进行查询。       

游弋在移动互联网的银狐999 3613

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

围绕EMF探索(1)之存储和查询

围绕EMF探索(1)之存储       EMF(Eclipse Modeling Framework)的应用会越来越多,而围绕EMF的query, validate, transaction, persistency等等讲逐渐被大家使用,以及EMF eCore也有非常大的参考价值。今天先讲讲EMF的存储与查询方面的内容。首先讲讲EMF对象的存储       这两天抽空玩了玩EMF的对象存储

游弋在移动互联网的银狐999 5639

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

围绕EMF探索(3)之初探OCL

 前索引:围绕EMF探索(1)之存储和查询 前索引:围绕EMF探索(2)之再探查询组件围绕EMF探索(3)之初探OCL       围绕EMF模型,有个很重要的基础性组件叫EMF OCL,这是一个实现了OCL2.0标准的组件,提供了对OCL Expression的解析、校验。OCL全称是Object Constraint Language。        对OCL之前接触不是很多。两年

游弋在移动互联网的银狐999 4193

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

EMF基础知识培训及ppt下载

今天给Team的同仁简单培训了一些EMF的基本知识。主要内容包括 MDA Concept,EMF Concept,EMF Model Definition,EMF Components,EMF Ecore,EMF Generation,EMF Runtime Framework,EMF Tools:Persistence,Query,OCL,Validate,Transaction 。对于EM

.NET博文收藏 383

jpa原生query_JPA使用原生SQL查询

一、Spring3.1之前版本的方法import org.springframework.context.ApplicationContext;import org.springframework.orm.jpa.support.JpaDaoSupport;import java.util.*;import javax.persistence.*;public class CustomerCour...

weixin_39603823的博客 228

注意力机制的几何本质:从QKV到EMF的范式重构

注意力机制本质上是一种在高维嵌入空间中建模token间相关性与内容映射的数学结构。其核心原理并非固定于QKV三重投影,而是可抽象为一个判别算子(决定‘谁相关’)与一个编码算子(决定‘看到什么’)的协同作用。这种几何化视角显著提升模型可解释性与调试效率,支撑轻量化设计、长序列优化及跨任务迁移等关键技术价值。在NLP基础模型、大语言模型微调、医疗/金融等高可信度场景中,显式建模注意力的零空间、值域与奇异值谱,已成为突破性能瓶颈与增强事实一致性的新路径。本文深入解析EMF(One Space, Two Opera

leonard61306500的专栏 458

jpa原生query_JPA 原生SQ查询

参考文章import org.springframework.stereotype.Service;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.PersistenceUnit;import javax.persistence...

weixin_39895486的博客 138
上一篇: Eclipse OCL 开发
下一篇: 我错了!
JavaMan_chen
博客等级 码龄19年 329粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值