TaskQuery查询API
有两种方法可以从引擎中查询数据:查询API和原生查询。查询API提供了完全类型安全的API。 你可以为自己的查询条件添加很多条件 (所以条件都以AND组合)和精确的排序条件。下面的代码展示了一个例子:
List<Task> tasks = taskService.createTaskQuery()
.taskAssignee("kermit")
.processVariableValueEquals("orderId", "0815")
.orderByDueDate().asc()
.list();
有时,你需要更强大的查询,比如使用OR条件或不能使用查询API实现的条件。 这时,我们推荐原生查询,它让你可以编写自己的SQL查询。 返回类型由你使用的查询对象决定,数据会映射到正确的对象上。比如,任务,流程实例,,执行,等等。 因为查询会作用在数据库上,你必须使用数据库中定义的表名和列名;这要求了解内部数据结构, 因此使用原生查询时一定要注意。表名可以通过API获得,可以尽量减少对数据库的依赖。
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT * FROM " + managementService.getTableName(Task.class) + " T WHERE T.NAME_ = #{taskName}")
.parameter("taskName", "gonzoTask")
.list();
long count = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T1, "
+ managementService.getTableName(VariableInstanceEntity.class) + " V1 WHERE V1.TASK_ID_ = T1.ID_")
.count();
实例:
StringBuffer whereSql = new StringBuffer();
String ua = "";String ub="";
if(formCode!=null){
whereSql.append(" and fi.form_no=#{form_no}");
}
if(this.userName!=null){
ua = ",Pub_User_Info u";ub="and fi.creator=u.userid";//考虑性能的作法
whereSql.append(" and u.emp_name like #{userName}");
}
tasks = taskService
.createNativeTaskQuery()
.sql("SELECT * FROM "
+ managementService.getTableName(Task.class)
+ " t,FLOW_RU_INFO fi"+ua+" where t.proc_inst_id_=fi.processinstanceid "+ub+"and t.assignee_=#{userid}"
+ whereSql +" order by t.create_time_ desc "
)
.parameter("userid", user.getUserid())
.parameter("form_no", formCode)
.parameter("userName", userName+"%") //这样就把通配符放进去了
.list();
也可以这样查询。这样最灵活。
String sql = "SELECT * FROM "+manageService.getTableName(HistoricActivityInstance.class)+" T WHERE T.PROC_INST_ID_ ='"+processInstanceId+"' AND T.ACT_ID_ = '"+ActID+"' AND ROWNUM<="+num+" ORDER BY T.START_TIME_ DESC ";
NativeHistoricActivityInstanceQuery nhpiq = historyService
.createNativeHistoricActivityInstanceQuery()
.sql(sql);
分享到:
相关推荐
在这个类中,你可以实现自定义颜色的细节,比如根据不同的条件绘制不同颜色的任务和连线。 至于 `微信图片_20200509112823.png` 和 `微信图片_20200509112947.png`,它们很可能是示例流程图或者修改前后效果的对比...
在本项目"activiti自定义表单demo"中,我们主要关注的是如何使用SpringBoot集成Activiti工作流引擎,实现自定义表单和流程。这个Demo提供了完整的代码示例,帮助开发者理解并应用到实际项目中。以下是相关知识点的...
5. 显示流程图:最后,将生成的自定义颜色流程图展示给用户,使他们能清楚地看到流程的当前状态。 通过以上步骤,我们可以为用户提供更加直观和易于理解的流程图,提高工作效率。在实际开发中,还需要考虑性能优化...
《Activiti整合流程自定义设计:SpringBoot+Activiti+Bootstrap+Angular实战解析》 在当今的信息化时代,业务流程管理(BPM)系统已成为企业不可或缺的一部分。Activiti,一个强大的开源工作流引擎,以其易用性和...
对于MySQL数据库,我们需要执行特定的建表语句来准备合适的环境来支持 Activiti 的运行。 在开始之前,让我们先理解一下Activiti的主要组成部分: 1. **流程定义(Process Definitions)**:这些是用BPMN 2.0标准...
【工作流Activiti5学习总结】 工作流管理系统(Workflow Management System, WfMS)是企业信息化建设中的重要组成部分,它负责协调和管理业务流程。Activiti5是一款开源的工作流引擎,由Alfresco公司开发,它基于...
"Activiti待办事项查询VIEW"是一个关于使用Activiti工作流引擎进行待办任务查询的专题,主要关注如何在实际应用中实现用户界面的展示。Activiti是一个开源的业务流程管理(BPM)和工作流引擎,广泛应用于企业级应用...
3. 数据库操作:activiti 通过 JDBC 驱动执行 SQL 语句,来实现对数据库的 CRUD 操作。 达梦数据库介绍 达梦数据库是中国自主研发的关系数据库管理系统,具有高性能、安全、可靠等特点。达梦数据库支持标准的 SQL ...
总之,“工作流例子-activiti5”涵盖了 Activiti 5 的核心功能,包括工作流部署、运行、历史查询以及流程图的使用。通过学习这个实例,开发者可以更好地理解和掌握 Activiti 在业务流程自动化中的应用,提升软件系统...
总的来说,"表自定义表单+工作流.zip"项目提供了一个基于SpringBoot和Activiti的低代码开发平台,实现了自定义表单设计和工作流管理的集成。这不仅为企业带来了灵活的流程定义和执行能力,还降低了开发成本,提升了...
### Activiti5学习笔记核心知识点解析 #### 一、Activiti5概述与环境搭建 **Activiti5**是一款开源的工作流引擎,基于Java语言开发,主要用于实现业务流程管理(BPM)和工作流自动化。其核心特性包括流程建模、...
在提供的"Springboot2整合Activiti5设计器.docx"文档中,可能会包含详细的步骤、代码示例以及可能遇到的问题和解决方案。同时,"材料"文件可能包含了实际的流程定义文件和示例代码,供读者实践和参考。 总之,...
这个"Activiti 5 用户手册 中文"提供了全面的指南,帮助用户理解和操作Activiti 5版本的各项功能。以下是对手册中关键知识点的详细阐述: 1. **安装与配置**:在开始使用Activiti之前,你需要在你的开发环境中安装...
同时,Activiti的监控和历史查询功能可以帮助你追踪流程执行情况,进行问题排查。 总的来说,Spring-Activiti与Ruoyi的结合,为企业级应用提供了一个强大的工作流解决方案。通过学习和掌握这两者的结合应用,开发者...
《Activiti5用户手册》是一本专为初学者设计的指南,旨在帮助读者掌握Activiti这一流行的业务流程管理(BPM)平台的核心开发与扩展技术。Activiti是基于Java的开源工作流引擎,广泛应用于企业的流程自动化和业务流程...
2. 表单设计:流程中的表单可以通过 Activiti 表单引擎自定义,支持静态表单和动态表单,提高用户体验。 四、Activiti 运行与控制 1. 流程实例管理:用户可以启动、暂停、继续、终止流程实例,对流程实例进行跟踪和...
**基于Activiti5的办公系统** Activiti5是一款开源的工作流引擎,被广泛应用于构建企业级的业务流程管理系统。在“基于Activiti5的办公系统”中,它扮演着核心角色,负责处理财务审批等复杂业务流程。这个系统设计...
SSH整合Activiti5 Demo是一个基于Maven构建的Java Web项目,旨在展示如何将Spring(SSH中的S)、Struts2(SSH中的H)和Hibernate(SSH中的S)这三大流行Java框架与 Activiti5 工作流引擎进行集成。这个Demo为初学者...