# 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