我使用hibernate(3.6.9.Final)和Oracle 11g數據庫與jdbc(ojdbc6:oracle.jdbc.OracleDriver) 我的連接字符串是jdbc:oracle:thin:@SERVERNAME :1521:ORCL 數據源:com.mchange.v2.c3p0.ComboPooledDataSourceOracle JDBC連接到錯誤的用戶
IOC:春天3.0.7.RELEASE
服務器:Tomcat的6
我的問題的描述是: 我有在我的oracle服務器中定義的兩個模式(用戶) MY_SC和MY_OLD_SC, MY_OLD_SC代表我的應用程序的舊模式,並具有表MY_TABLE有一列名添加my_id MY_SC是我的應用程序的最新的模式,也有MY_TABLE但除了添加my_id列它還具有MY_NAME列
當我開始我的應用程序與用戶MY_SC和休眠的驗證失敗,我對以下異常:
org.hibernate.HibernateException:缺少列:MY_NAME在MY_OLD_SC.MY_TABLE
似乎它甚至連接到錯誤的模式,雖然我證實我連接MY_SC用戶,只有當我從數據庫中刪除MY_OLD_SC後,我才能夠連接到MY_SC。
這個問題並不一致,有時我可以使用不同的schams,但是一旦失敗,我必須刪除數據庫中除我想使用的所有模式外。 大部分時間它發生在我使用impdp的新架構後,但不是隻有在impdp後
請注意,如果我連接到SQL開發者連接到用戶似乎是正確的。
語句創建用戶:爲impdb
CREATE USER username IDENTIFIED BY username
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON USERS;
GRANT conn TO username;
代碼:
./impdp system/[email protected] remap_schema=org_name:new_name directory=DATA_PUMP_DIR TRANSFORM=oid:n dumpfile=backup.dmp
將是巨大的,如果你知道可能是什麼問題,也許我需要以不同的方式創建用戶?什麼可能導致這個問題?
感謝廣告
感謝Chris,-Dhibernate.default_schema = MY_USER爲我解決了這個問題。非常奇特的是Hibernate做到了這一點。我正在使用3.6.7。 –