update docs/zh/faq.md.

Signed-off-by: xiaoxiao <903999516@qq.com>
This commit is contained in:
xiaoxiao 2024-11-13 08:51:11 +00:00 committed by Gitee
parent bbddb154ba
commit 2e96fff45a
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -356,3 +356,25 @@ public ProcessEngineConfiguration processEngineConfiguration(
... ...
} }
``` ```
## MyBatis-Flex 与camunda工作流引擎集成事务兼容问题
当Mybatis-Flex 与camunda集成时,存在事务不兼容问题;需要覆盖其自动配置;添加 mybatis-flex 的事务管理器FlexTransactionManager和 DataSourceFlexDataSource
注入到 ProcessEngineConfiguration配置代码如下
```java
@Bean(name = "processEngineConfiguration")
public ProcessEngineConfigurationImpl processEngineConfiguration(SqlSessionFactory sqlSessionFactory,
PlatformTransactionManager annotationDrivenTransactionManager) throws NoSuchFieldException, IllegalAccessException {
final SpringProcessEngineConfiguration processEngineConfiguration = CamundaSpringBootUtil.springProcessEngineConfiguration();
DataSource dataSource = sqlSessionFactory.getConfiguration().getEnvironment().getDataSource();
//获取私有字段
Field field = ProcessEngineConfiguration.class .getDeclaredField("dataSource");
field.setAccessible(true);
field.set(processEngineConfiguration, dataSource);
processEngineConfiguration.setTransactionManager(annotationDrivenTransactionManager);
processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE);
processEngineConfiguration.setTransactionFactory(new FlexTransactionFactory());
processEngineConfiguration.setHistoryLevel(HistoryLevel.HISTORY_LEVEL_FULL);
return processEngineConfiguration;
}
```