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

来源:互联网 发布:怎么投诉淘宝卖家 编辑:程序博客网 时间:2024/06/07 01:58

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" />
阅读全文
0 0
原创粉丝点击