activiti在使用oracle数据库时出现建表错误

xiaoxiao2021-02-28  107

activiti在使用oracle数据库时出现建表错误

错误出现环境

在activiti中配置了oracle作为数据源,刚开始的时候没有在ProcessEngineConfiguration或SpringProcessEngineConfiguration中配置DatabaseSchema属性,导致创建数据库出错(该错误在mysql中没有出现),后来参考网上的方法添加了该属性,具体原因请点击这里,添加该属性后成功创建了数据库,而且项目可以正常启动。但是第二次启动数据库的时候出现了 ORA-00955: 名称已由现有对象使用 这个错误

spring.xml 配置

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name="transactionManager" ref="txManager" /> <property name="databaseSchema" value="XXXX" /> <property name="databaseSchemaUpdate" value="true" /> <property name="jobExecutorActivate" value="false" /> </bean>

错误原因分析

通过查询相关文档,初步断定是由于activiti自动更新数据导致的错误,第一次启动系统的时候必须设置databaseSchemaUpdate为true,否则无法自动建表,但是当第二次启动项目的时候acitiviti也会自动更新数据库,就是这个操作导致了第一次能正常启动,以后启动项目报错,关于databaseSchemaUpdate属性的说明,看这里这里

解决方法 通过分析发现出现该问题的原因就是因为activiti会自动检查数据库是否更新,所以解决的方法就是让acitiviti在数据已经建立成功的情况下,不执行检查 具体方法是删除DatabaseSchema属性,不执行检查

<!-- <property name="databaseSchema" value="XXXX" /> -->

或者将databaseSchemaUpdate设置为none

<property name="databaseSchemaUpdate" value="none" />
转载请注明原文地址: https://www.6miu.com/read-60746.html

最新回复(0)