springboot+hibernate+flowable 框架开发工作流遇到的问题

1,引入依赖:


			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			1.3.2
		
		
		
			org.flowable
			flowable-spring-boot-starter-basic
			6.4.1
		

引入工作流需要的依赖,这里为什么还引入了mybatis的依赖,我感觉我是被逼的,因为在使用flowable 启动项目生成工作流数据表的时候报错,也就是flowable还存在小坑。但是这并不影响开发,只要引入mybatis 依赖就可以了。

2,配置flowable 

@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer {
    @Override
    public void configure(SpringProcessEngineConfiguration springProcessEngineConfiguration) {
        springProcessEngineConfiguration.setActivityFontName("宋体");
        springProcessEngineConfiguration.setLabelFontName("宋体");
        springProcessEngineConfiguration.setAnnotationFontName("宋体");
    }


    @Bean
    public ProcessEngine getProcessEngine(){
        ProcessEngineConfiguration pec = new StandaloneProcessEngineConfiguration();
        pec.setJdbcDriver("****");
        pec.setJdbcUrl("****");
        pec.setJdbcUsername("***");
        pec.setJdbcPassword("***");

        pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        pec.setAsyncExecutorActivate(false);
//        pec.setDatabaseSchema("base.");
//
//        pec.setDatabaseTablePrefix("base.");
        pec.setDatabaseSchemaUpdate("true");

        ProcessEngine processEngine = pec.buildProcessEngine();
        return processEngine;
    }

}

这里说一下,有的人也许会问为什么不在配置文件里去配置flowable的参数,在这里抱歉的告诉客官 我尝试几次没成功,无奈只能在配置启动class。

但是还是存在问题。

问题描述:

1-1:pec.setDatabaseSchemaUpdate("true"); 刚开始我只配置了 这行代码,但是项目运行报错,【表或视图不存在】,根据参数描述 这可以自动生成工作流所需要的表结构的哇,为什么,不行呢?

1-2:pec.setDatabaseTablePrefix("base.");又配置了这个属性;从属性描述 上可以看出这是 表的前缀啊,开始我很单纯的配置了 base 但是没有点(注意这个base是我的数据库表前缀,不是你的哦,根据自己情况配置);然后兴高采烈的启动项目,duang,报错!!!!baseACT_ID_USER ......... 具体错误忘记了,我你妈,居然需要加上点,一个点;熊了;

经过这顿折腾,再试试;项目成功启动,工作流表也生成了。高兴啊;

1-3:配置不变,重启项目,duang!!!全是错误》》》》什么表已存在、索引已被使用等等 各种数据异常扑面而来;

这是怎么了??怎么了??我以为把这段配置pec.setDatabaseSchemaUpdate("true"); 改成false就可以了,但是又出现新问题 flowable版本不正确,这里我引入的是 6.4.1的,报错是db version 5.99.0.0的版本,数据库版本低了??然并不是,这个5.99.0.0 版本是人家默认的,咋办?

最终几经尝试这个配置是这样子的

如果工程数据库不存在工作流表,配置是这样的

@Bean
    public ProcessEngine getProcessEngine(){
        ProcessEngineConfiguration pec = new StandaloneProcessEngineConfiguration();
        pec.setJdbcDriver("");
        pec.setJdbcUrl("");
        pec.setJdbcUsername("");
        pec.setJdbcPassword("");

        pec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        pec.setAsyncExecutorActivate(false);
//        pec.setDatabaseSchema("base.");
//
        pec.setDatabaseTablePrefix("base.");
        pec.setDatabaseSchemaUpdate("true");

        ProcessEngine processEngine = pec.buildProcessEngine();
        return processEngine;
    }

把这行代码 pec.setDatabaseTablePrefix("base."); 放开,生成工作流表结构;

如果数据库存在了 工作流表结构,这行代码就注释掉;

总结:

这里只是我遇到的问题,仅供参考,如果客官有好的方法,请不吝赐教,在此拜谢了;

 

 

 

 

你可能感兴趣的:(java,spring)