当前位置: 首页 > news >正文

Spring整合Activiti,在瀚高数据库初始化时指定schema解决优秀的方案

文章目录

  • 环境
  • 文档用途
  • 详细信息

环境

系统平台:Microsoft Windows (64-bit) 10
版本:5.6.4

文档用途

本文介绍Spring整合Activiti 6.0.0和7.0.0.Beta1两个版本,在瀚高数据库初始化到指定schema的解决方案。

详细信息

1、Activiti参数

1)Spring整合Activiti时,首先修改/添加databaseType参数:

2)如果设置了databaseSchema参数,初始化时会报如下错误,具体原因暂未知:
Caused by: org.activiti.engine.ActivitiException: Could not set database schema on connection
at org.activiti.engine.impl.db.DbSqlSessionFactory.openSession(DbSqlSessionFactory.java:81)
at org.activiti.engine.impl.interceptor.CommandContext.getSession(CommandContext.java:249)
at org.activiti.engine.impl.interceptor.CommandContext.getDbSqlSession(CommandContext.java:261)

2、Activiti自带表初始化到当前数据库的指定schema下

此平台下文章:《014834704 Activiti 连接瀚高数据库(APP)》,是创建的activiti数据库,activiti用户和activiti schema,因此activiti初始化时,自动初始化到了activiti schema下;如果不创建activiti数据库,activiti用户和activiti schema是默认初始化到public下的。

如果我想初始化到当前数据库的指定schema下,应该怎么实现?

方法是修改activiti源码包,6.0.0和7.0.0.Beta1两个版本已经实现了,5.22.0版本暂时没找到源码包里的配置在哪,暂未处理;大家可根据6.0.0和7.0.0.Beta1两个版本的操作方式修改5.22.0版本的源码即可。

具体操作如下,以6.0.0为例:

1)打开6.0.0的jar包,如下图:
在这里插入图片描述
2)找到初始化的sql,修改为下图:(在table前加上schema,前提需要在瀚高数据库中建好这个schema)
在这里插入图片描述
3)修改后,用解压缩工具打开jar,直接覆盖原来的sql文件(记得备份)。然后刷新项目或Update Project,确保修改的生效。目前只找到了这个解决办法,Activiti的其他配置参数,试过了不起作用。

启动项目,可能会有如下报错:
###Error querying database.Cause: com.highgo.jdbc.util.PSQLException:ERROR: 42P01: relation "act_ge_property" does not exist 位置:15
###The error may exist in org/activiti/db/mapping/entity/Property.xml
###The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntityImpl.selectProperty-Inline
###The error occurred while setting parameters
###SQL: select * from ACT_GE_PROPERTY where NAME_ = ?
###Cause: com.highgo.jdbc.util.PSQLException: ERROR: 42P01: relation "act_ge_property" does not exist

一看就是表不存在的问题,但是发现数据库表已经初始化进去了;然后修改瀚高数据库的search_path添加上当前schema重启数据库使之生效后,还是报同样的错误。

4)然后去找org/activiti/db/mapping/entity/Property.xml中的报错位置:
在这里插入图片描述
发现表前面都有${prefix}参数,因此判断是引用了这个参数,与数据库无关;

5)两种解决方案:

第一种:添加配置参数。

第二种:修改源码包:

找到postgres.properties添加prefix=当前schema,然后解压缩工具覆盖替换;记得刷新项目或Update Project,确保修改的生效。
在这里插入图片描述
重启项目,发现问题已解决。

本文仅是6.0.0和7.0.0.Beta1两个版本在初始化时指定schema的问题,后期的使用有无隐患问题,暂未知。

拓展:由于Activiti在数据库进行初始化时,需要匹配数据库,因此如果是从其他数据库迁移到瀚高数据库的,而不是在瀚高数据库进行的初始化,则会有类型不匹配问题:

1)如果是新上线系统,没有历史数据,建议不迁移Activiti相关表,直接从瀚高数据库初始化;

2)如果有历史数据,则直接用瀚高迁移工具迁移,对于类型不匹配问题:

(1)可以先尝试用建类型转换的方法处理;

(2)再尝试用触发器解决;

(3)最后修改Activiti源码包中的xml配置文件,在配置文件的sql中加入类型转换。

虽然是修改源码包,但是不涉及反编译,只涉及解压缩和替换更新,因此操作很简单。

http://www.jsqmd.com/news/358570/

相关文章:

  • 2026年亨得利钟表维修推荐评测榜:名表维保痛点解析与核心城市服务网点排名 - 品牌推荐
  • 2026年广东燃气锅炉选购指南,靠谱的老牌厂家怎么选 - 工业设备
  • 推荐曲块粉碎机多少钱,曲阜久鼎酿酒设备曲块粉碎机好用的品牌有哪些 - 工业品网
  • 【大模型应用开发】Claude Code 全方位入门指南:从零基础到本地化实战
  • 2026年合肥笔记本电脑售后维修点评测推荐:当电脑突发故障,如何快速找到靠谱服务 - 品牌推荐
  • 单北斗变形监测一体机在基础设施安全与地质灾害监测中的应用价值分析
  • 宏智树 AI:告别问卷设计低效痛点,新手也能做出专业学术问卷
  • 【Linux】du 命令查看文件和目录的磁盘占用
  • Java高频面试题:BIO、NIO、AIO有什么区别?
  • 科普|宏智树AI开题报告神器:小白避坑指南,告别导师反复打回
  • 从此告别拖延 9个AI论文写作软件测评:继续教育毕业论文+科研写作必备工具推荐
  • 2026年杭州苹果售后维修点评测推荐:设备故障时的可靠服务选择指南 - 品牌推荐
  • 2026年广州沛纳海手表维修推荐评测:非官方维修点选择指南与全国服务网点排名 - 品牌推荐
  • 2026年2月儿童氨基酸洗发沐浴露产品推荐,氨基酸洗护优选指南 - 品牌鉴赏师
  • 2026年2月儿童无由洗发水产品最新推荐,无香精洗护极简配方与敏感肌适配指南 - 品牌鉴赏师
  • 支付宝消费券回收哪里最划算? - 京顺回收
  • 2026年贵阳苹果售后维修点评测推荐:设备故障时的专业服务选择指南 - 品牌推荐
  • 2026年合肥管道疏通服务评测与排名推荐:解决家庭与市政管道堵塞难题 - 品牌推荐
  • 2026年盘点广州石牌村附近白切鸡美食,价格实惠的推荐 - 工业推荐榜
  • 深入解析:word怎么自动生成目录?【图文详解】word目录自动生成?怎么自动生成目录和页码?
  • 2026年广州海鸥手表维修推荐榜单:非官方维修网点服务评测与选择指南 - 品牌推荐
  • 学长亲荐!千笔,自考降重首选神器
  • 2026年2月氨基酸洗发沐浴露产品推荐,氨基酸洗护优选指南 - 品牌鉴赏师
  • 2026年上海、昆山热门的新能源汽车培训学校推荐,哪家性价比高 - myqiye
  • 2026年合肥管道疏通服务评测排名:解决堵塞难题的可靠选择指南 - 品牌推荐
  • file.arrayBuffer() 的浏览器兼容性如何
  • 特殊函数(贝塞尔函数....)
  • 探究广州靠谱的防静电卷材地板生产厂,推荐选购哪家? - 工业品牌热点
  • UOJ 450
  • 用过才敢说! 更贴合本科生的降AI率平台 千笔·专业降AI率智能体 VS 灵感ai