SpringBoot + activiti7+ 达梦8

activiti默认支持oracle、mysql等数据库,不支持DM,我们需要重写activiti部分源码,让他支持DM。环境:jdk1.8、sprinbgoot2.7.1、activiti7.0.0.SR1、DM8

  • MAVEN:
  • 新建文件
  • ProcessEngineConfigurationImpl类:
  • DbSqlSessionFactory类:
  • AbstractQuery类:

MAVEN:

	<dependency>
           <groupId>com.dameng</groupId>
           <artifactId>DmJdbcDriver18</artifactId>
           <version>8.1.1.193</version>
       </dependency>
       <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-core</artifactId>
           <optional>true</optional>
       </dependency>
       <dependency>
           <groupId>com.dameng</groupId>
           <artifactId>DmDialect-for-hibernate5.6</artifactId>
           <version>8.1.1.49</version>
       </dependency>

activiti使用了hibernate方言,所以要引入 DmDialect-for-hibernate5.6。
这个包在达梦服务器里应该能找到,如果没有,可以去资源区下载到本地D盘,打开cmd执行安装。

mvn install:install-file -Dfile=D:\DmDialect-for-hibernate5.6.jar -DgroupId=com.dameng -DartifactId=DmDialect-for-hibernate5.6 -Dversion=8.1.1.49 -Dpackaging=jar

*(注意版本不同也有可能造成项目启动失败)

新建文件

用idea找到activiti下的engine包,如下图(确保已引入activiti)
在这里插入图片描述
展开engine包,按照路径找到下面三个文件:
org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl、
org.activiti.engine.impl.db.DbSqlSessionFactory、
org.activiti.engine.impl.AbstractQuery
并在工程src/main/java下,新建同名包和类,打开上述三个类,将内容直接复制到新建的类中,如下图。
SpringBoot + activiti7+ 达梦8_第1张图片

ProcessEngineConfigurationImpl类:

添加dm属性
SpringBoot + activiti7+ 达梦8_第2张图片
添加dm映射
SpringBoot + activiti7+ 达梦8_第3张图片
initSqlSessionFactory方法:添加加载dm的配置为mysql.properties。也可以自己写一个dm.properties。
SpringBoot + activiti7+ 达梦8_第4张图片

DbSqlSessionFactory类:

initBulkInsertEnabledMap方法:添加dm类型,让它使用oracle的插入方法。
SpringBoot + activiti7+ 达梦8_第5张图片

AbstractQuery类:

addOrder方法:添加两处dm的判断,这里不同activiti写的方式可能不一样,不过大同小异,按照上一行的写法添加上dm的判断就可以
SpringBoot + activiti7+ 达梦8_第6张图片
本类中可能还会报一些强转的错,手动修改就可以了。例如:
SpringBoot + activiti7+ 达梦8_第7张图片

添加yml配置:

spring.jpa.database-platform=org.hibernate.dialect.DmDialect

可能不同版本配置也不一样。不过整体思路就是替换掉activiti7里几个类,从而支持达梦。目前本人项目还未发现错误,记录一下。

你可能感兴趣的:(java,spring,spring,boot,数据库)