You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flowable 7多流程定义ID的In查询实现及or方式合理性探讨

Flowable 7 多流程定义ID的In查询实现方案

能否通过or()连接多个processDefinitionId()实现In查询?

可以。这种写法最终生成的SQL逻辑等价于process_definition_id IN (?, ?),能够准确筛选出归属指定多个流程定义ID的任务。

该方式是否属于最佳实践?

分场景判断:

  • 当需要查询的流程定义ID数量较少(如个位数),这种写法简单直观,完全可以正常使用。
  • 当ID数量较多时,这种方式会生成冗长的OR拼接SQL,不仅可读性差,还可能触发数据库的SQL长度限制,执行效率也不如原生的IN查询。此时更推荐使用原生SQL查询,示例代码如下:
    List<Task> tasks = taskService.createNativeTaskQuery()
        .sql("SELECT * FROM ACT_RU_TASK WHERE PROC_DEF_ID_ IN (?, ?)")
        .parameter(1, processDefinitionId1)
        .parameter(2, processDefinitionId2)
        .list();
    
    若业务中频繁需要此类查询,也可基于Flowable的扩展机制自定义Query方法,但需额外开发成本。

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:42:37