activiti自定义_在Activiti中执行自定义查询

activiti自定义

(这可能最终会出现在Activiti 5.15版本的用户指南中,但是我已经想要共享它了)

Activiti API允许使用高级API与数据库进行交互。 例如,对于检索数据,查询API和本机查询API的用法很强大。 但是,对于某些用例,它们可能不够灵活。 下一节描述了如何针对Activiti数据存储区执行完全自定义SQL语句(可能进行选择,插入,更新和删除),但如何在已配置的Process Engine中完全执行(从而例如利用事务设置)。

为了定义自定义SQL语句,Activiti引擎利用其基础框架MyBatis的功能。 使用自定义SQL时,要做的第一件事是创建MyBatis映射器类。 可以在MyBatis用户指南中信息。 例如,假设对于某些用例,不需要全部任务数据,而仅需要其中一小部分。 可以执行此操作的Mapper如下所示:

public interface MyTestMapper {@Select("SELECT ID_ as id, NAME_ as name, CREATE_TIME_ as createTime FROM ACT_RU_TASK")List<Map<String, Object>> selectTasks();}

必须将此映射器提供给Process Engine配置,如下所示:

...
<property name="customMybatisMappers"><set><value>org.activiti.standalone.cfg.MyTestMapper</value></set>
</property>
...

请注意,这是一个接口。 底层的MyBatis框架将创建一个实例,可以在运行时使用。 还要注意,该方法的返回值不是类型,而是一个映射列表(对应于具有列值的行列表)。 如果需要,可以使用MyBatis映射器键入。

要执行上面的查询,必须使用managementService.executeCustomSql方法。 此方法接受一个CustomSqlExecution实例。 这是一个包装程序,它隐藏了使引擎正常工作所需的引擎内部位。

不幸的是,Java泛型使它的可读性比以前要差一些。 下面的两个泛型类型是mapper类和return类型类。 但是,实际的逻辑只是调用mapper方法并返回其结果(如果适用)。

CustomSqlExecution<MyTestMapper, List<Map<String, Object>>> customSqlExecution =new AbstractCustomSqlExecution<MyTestMapper, List<Map<String, Object>>>(MyTestMapper.class) {public List<Map<String, Object>> execute(MyTestMapper customMapper) {return customMapper.selectTasks();}};List<Map<String, Object>> results = managementService.executeCustomSql(customSqlExecution);

在这种情况下,上面列表中的Map条目将仅包含ID,名称和创建时间 ,而不包含完整的任务对象。

使用上述方法时,任何SQL都是可能的。 另一个更复杂的示例:

@Select({"SELECT task.ID_ as taskId, variable.LONG_ as variableValue FROM ACT_RU_VARIABLE variable","inner join ACT_RU_TASK task on variable.TASK_ID_ = task.ID_","where variable.NAME_ = #{variableName}"})List<Map<String, Object>> selectTaskWithSpecificVariable(String variableName);

使用此方法,任务表将与变量表结合在一起。 仅保留具有特定名称的变量,并返回任务ID和相应的数值。

这将在Activiti 5.15中实现。 但是,该代码(更具体地说是Command实现和wrapper接口 )可以在Activiti的任何较旧版本中使用。

参考: 在我们的JCG合作伙伴 Joram Barrez的“ 小脚大步”博客中, 在Activiti中执行自定义查询 。

翻译自: https://www.javacodegeeks.com/2014/01/execute-custom-queries-in-activiti.html

activiti自定义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】陕西师范大学201371 国际法学作业

《国际法》作业 一、填空题 1&#xff0e;&#xff08; &#xff09;和&#xff08; &#xff09; 是国际法的主要渊源。 2&#xff0e;现代国际法主体应包括&#xff1a;国家、&#xff08; &#xff09;和&#xff08; &#xff09; 3&#xff0e;国家领土包括&#xff1a;领…

【渝粤题库】陕西师范大学201901 中国古代文学(二) 作业(高起专)

《中国古代文学&#xff08;二&#xff09;》【高起专】作业 一、单选题 1、提出“大凡物不得其平则鸣”这一著名观点的作家是&#xff08; &#xff09; A 李白 B 杜甫 C 韩愈 D 白居易 2、韦庄写有一首涉及黄巢起义的长篇叙事诗&#xff0c;题目叫做&#xff08; &#xff09…

php实际开发过程,4.工作实际开发应用

**本文以thinkphp5中扩展 think-queue的应用为实例**1.安装think-queue 扩展composer install topthink/think-queue2.index模块下新建控制器,调用消息队列入队~~~namespace app\index\controller;/*** 文件路径&#xff1a; \application\index\controller\JobTest.php* 该控制…

引导性GCP:带有Google Cloud Pub / Sub的Spring Cloud Stream

我最近在Sprint Central的工程博客上阅读了Josh Long的Bootiful GCP系列 &#xff0c;特别喜欢关于使用Google Cloud的Pub / Sub的第四部分 。 我受到该系列的启发&#xff0c;同时我还在为我的一个新项目评估Spring Cloud Stream。 我以为&#xff0c;我会继续讨论乔希&#x…

【渝粤题库】陕西师范大学202241 金融市场学 作业(专升本)

《金融市场学》作业 一 名词解释 1&#xff0e;货币头寸   2&#xff0e;金边债券   3&#xff0e;二板市场 4&#xff0e;金融市场 5&#xff0e;投资基金 6&#xff0e;系统风险 7&#xff0e;外汇市场 8&#xff0e;货币市场共同基金 9&#xff0e;衍生证券 10&#x…

【渝粤题库】陕西师范大学210002儿童文学 作业(高起专、高起本、专升本)

《儿童文学》作业 单选题 1、构成作品音响效果的因素是象声词、韵律和&#xff08; &#xff09;。 2、幼儿文学作品用词的总要求是&#xff1a;具体、浅显、充分发挥&#xff08; &#xff09;作用 3、在儿童文学创作艺术手法的运用中应注意心理描写和&#xff08; &#xff…

db2 迁移mysql,mysql 迁移 db2

我该怎样迁移数据呢?如果用于非 IBM 平台的数据库模式与用于 DB2 的模式相同(或非常类似),那么可 以通过使用 IBM Migration Toolkit (MTK) 来完成数据迁移。因此......4. . 迁移应用程序 1.不同数据库的对象区别 Mysql/Sql Server->oracle 自增长 vs 序列 Oracle->DB2 …

jdbc和jdbc驱动_JDBC布尔兼容性列表

jdbc和jdbc驱动有趣的是&#xff0c;布尔类型只是在SQL标准后期才引入&#xff0c;即SQL&#xff1a;1999 。 即使在今天&#xff0c;并非所有数据库本身都支持BOOLEAN或BIT类型。 最重要的是&#xff0c;我们仍然可以在Oracle中等待一段时间。 这是2002年以来关于该主题的“问…

【渝粤题库】陕西师范大学300008 历史教学论

《历史教学论》作业 一、名词解释 1&#xff0e;历史课程标准 2&#xff0e;综合课型 3&#xff0e;讲述法 4&#xff0e;历史基础知识 5&#xff0e;历史教材 6&#xff0e;历史概念 7&#xff0e;复习课 8&#xff0e;讲解法 9&#xff0e;叙述法 10&#xff0e;绪论课 11&am…

【渝粤题库】陕西师范大学500013 物理教学论 作业(专升本)

《物理教学论》作业 一、简答题 1、中学物理教学应坚持哪些主要的教学原则&#xff1f; 2、适应新课程教学物理教师应具备怎样的智能结构&#xff1f; 3、中学生学习物理的主要思维特征是什么&#xff1f; 4、发展性课程评价体系的基本理念和原则是什么&#xff1f; 5、物理教学…

IDE日志分析方法pt。 1个

介绍 我认为大多数软件工程师都了解日志的重要性。 它们已成为软件开发的一部分。 如果无法解决问题&#xff0c;我们尝试在日志中查找原因。 对于一些简单的情况&#xff0c;当错误阻止应用程序打开窗口时&#xff0c;这可能就足够了。 您可以在日志中找到问题&#xff0c;然后…

ycms+php,CMS下载_建站大师 - 建站模板,CMS模板,网站开发

增加后台和用户中心可查看升级值的记录[12-14]增加后台为用户充值升级值的功能[12-14]增加后台列表的字段回调格式函数&#xff1a;联动菜单名称、单选字段名称、下拉字段名称、复选框名称[12-16]增加钩子接口&#xff1a;模块内容审核处理之后(module_verify_after)[12-17]增加…

【渝粤题库】陕西师范大学700011 新课程改革与生物教材研究

《新课程改革与生物教材研究》作业 一、选择题 1、1921年弗雷德里克班廷从狗的体内分离得到天然胰岛素。40多年后&#xff0c;首次人工合成结晶牛胰岛素的科学家是 A&#xff0e;中国人 B&#xff0e;加拿大人 C&#xff0e;美国人 D&#xff0e;德国人 2、轴突是神经细胞的 A&…

国家开放大学2021春1050金融理论前沿课题题目

教育 教育 试卷代号&#xff1a; 1050 2021年春季学期期末统一考试 金融理论前沿课题 试题&#xff08;开卷&#xff09; 2021年7月 一、名词解释&#xff08;每小题5分&#xff0c;共15分&#xff09; 1.骆驼评级体系&#xff1a; 2.经济数据偏差&#xff1a; 3.核心通货膨胀…

java运行构建期间出错_构建和运行Java 8支持

java运行构建期间出错尚未提供对Java 8的Eclipse支持。 如果要使用它&#xff0c;则必须构建它。 Eclipsepedia的JDT Core / Java8页面包含有关使用Eclipse Java开发工具 &#xff08;JDT&#xff09;中不断发展的Java 8支持源来设置开发环境的说明。 说明中缺少一些内容&#…

php ord函数 中文,php ord 函数与中文乱码解决方法_PHP教程

//a字符$str(pack(“a*”, “中国”));echo $str,””,strlen($str),”字节n”;getascill($str);//h字符$str(pack(“h*”, “fffe”));echo $str,””,strlen($str),”字节n”;getascill($str);//c字符$str(pack(“c*”, “55”,”56″,”57″));echo $str,””,strlen($str),…

从Commons CLI迁移到picocli

最初于2002年发布的Apache Commons CLI可能是使用最广泛的Java命令行解析器&#xff0c;但是它的API显示了它的年龄。 寻找具有最少样板代码的现代方法的应用可能对picocli感兴趣。 为什么要花麻烦的钱进行迁移&#xff0c;以及如何将基于Commons CLI的应用程序迁移到picocli&a…

怎么设置php的css颜色代码,CSS的文本字体颜色如何设置

这里要介绍的是网页设置颜色包含有哪些&#xff1b;网页颜色规定规范。1、常用颜色地方包含&#xff1a;字体颜色、超链接颜色、网页背景颜色、边框颜色2、颜色规范与颜色规定&#xff1a;网页使用RGB模式颜色网页中颜色的运用是网页必不可少的一个元素。使用颜色目的在于有区别…

QuickBooks和Sage数据导出器

许多中小企业都使用QuickBooks作为其会计模块。 同样&#xff0c;许多公司也使用Sage进行会计处理。 他们中的大多数人在需要从这些系统中导出数据时会遇到问题。 在线提供的许多连接器价格昂贵&#xff0c;无法满足确切的要求。 随附的是一些简短的代码段&#xff0c;这些代码…

php+easyui+上传文件,easyui 上传文件代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;using BLL;using m Model;using System.Data;using System.Data.SqlClient;using System.Text;namespace Web.Handler{/// /// AddOppportunityHandler 的摘要说明/// pub…