# demo36 **Repository Path**: FlowableDemo/demo36 ## Basic Information - **Project Name**: demo36 - **Description**: 添加多节点,并持久化到数据库 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ------ 环境: [jkd8+]() [mysql5.6+]() ## 一、给缓存中添加多个节点 - 详见AddNode.addMulitiNode方法 ## 二、持久化到数据库 - 执行脚本db/init.sql - 在flowable-context.xml配置文件中添加mapper配置 ``` com.flowable.demo.mapper.CreationMapper ``` - 保存到数据库 ``` AddNode.persistenDataToDataBase方法 ``` ## 三、引擎启动从数据库加载临时节点到缓存 - 在flowable-context.xml配置文件中添加引擎监听器配置 ``` ``` - 流程启动时候加载临时节点数据到缓存 ```java public void onProcessEngineBuilt(ProcessEngine processEngine) { System.out.println("-------流程引擎开始,加载多节点数据到缓存---------- " ); ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) processEngine .getProcessEngineConfiguration(); SqlSessionFactory sqlSessionFactory = processEngineConfiguration.getSqlSessionFactory(); SqlSession sqlSession = sqlSessionFactory.openSession(); List actCreations = sqlSession.selectList("com.flowable.demo.mapper.CreationMapper.findAll"); for (ActCreation actCreation : actCreations) { String processInstanceId = actCreation.getProcessInstanceId(); String processDefinitionId = actCreation.getProcessDefinitionId(); TempActivityModel tempActivityModel = JSON.parseObject(actCreation.getProcessText(),TempActivityModel.class); new AddNode().addMulitiNode(processDefinitionId, processInstanceId, processEngine, tempActivityModel.getActivitys(), tempActivityModel.getFirst(), tempActivityModel.getLast(), false); } } ``` ## 四、实践测试 - 运行addManyNode,在user-b和user-c之间添加临时节点:user-d,user-e,user-f,并保存到临时表 - 运行getNodeFromCache,从缓存中获取刚刚加的节点user-e