1. 程式人生 > >Oracle資料庫同一個例項下不同使用者表名重複的問題

Oracle資料庫同一個例項下不同使用者表名重複的問題

     首先我們要明確:表名和使用者沒有關係,關鍵的一個例項下,不能有相同的表名存在。也就是說Oracle資料庫系統中,可以有多個數據庫,每一個數據庫可以有多個數據表。同一個資料庫中不能有相同名稱的資料表,但在不同的資料庫中可以有相同的資料表名。
    通常情況我們都是在一個數據庫例項下建立多個使用者,因此就會出現不同使用者下表名重複時,hibernate對映表映射不出來的問題,解決辦法就是在訪問資料庫表時採用“使用者名稱.表名”的方式。具體的實現方法有兩種:
1:在hiberante.properties檔案裡,設定hibernate.default_schema="使用者名稱",注:使用者名稱要大寫。2 :如果使用SH框架,在jdbc檔案中配置一個使用者名稱(username),在sessionFactory的配置檔案中,加上<prop key="hibernate.default_schema">${jdbc.username}</prop>來讀取這個使用者名稱,當然也可以直接把使用者名稱寫死,但一般為了靈活,不建議寫死。加上這個配置項也就表示在每次訪問表時在前加上使用者名稱。