日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法

發布時間:2024/4/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現象描述:按照正常配置,第一次啟動時不能自動建表

關鍵配置片段如下:

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

<property name="dataSource" ref="dataSource" />

<property name="transactionManager" ref="transactionManager" />

<property name="databaseSchemaUpdate" value="true" />

<property name="jobExecutorActivate" value="true" />

</bean>

?

啟動后報錯:

?

### The error may exist in org/activiti/db/mapping/entity/Property.xml?

### The error may involve defaultParameterMap?

### The error occurred while setting parameters?

### SQL: select VALUE_ from ACT_GE_PROPERTY where NAME_ = 'schema.version'?

### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或視圖不存在

?

經過調試分析,發現是關鍵判斷表是否存在代碼返回true值引起的,org.activiti.engine.impl.db.DbSqlSession.isTablePresent(String tableName);問題在于方法里面的schema=null,而連接的數據庫實例下已經有另外一個用戶activiti已經創建過表。

?

于是在引擎配置里面加入屬性:

?

<property name="databaseSchema" value="act"/>

?

再啟動,成功創建表。到此本以為問題已解決,停掉服務再次啟動,失敗,報建表錯誤:對象已存在。調試發現isTablePresent返回的還是false(表還未創建)。

?

發現是大小寫問題,最后改成

?

<property name="databaseSchema" value="ACT"/>

?

解決。

轉載于:https://www.cnblogs.com/jiqiyoudu/p/5498302.html

總結

以上是生活随笔為你收集整理的Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。