1. 程式人生 > >[Hibernate]Oracle 不同使用者同名表名問題

[Hibernate]Oracle 不同使用者同名表名問題

一般來說Hibernate配置資料庫連線只需要下面幾行配置

Java程式碼  收藏程式碼
  1. ##Oracle 9i/10g  
  2. hibernate.dialect org.hibernate.dialect.Oracle9Dialect  
  3. hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver  
  4. hibernate.connection.username xxxx  
  5. hibernate.connection.password xxxx  
  6. hibernate.connection.url jdbc:oracle:thin:@127.0.
    0.1:1521:SID  


Oracle是允許不同使用者在同一個SID中建立同名的表的,但是如果按照上面的配置
Hibernate的SchemaUpdate操作是不會認帳的
SchemaUpdate指的hibernate配置成
Java程式碼  收藏程式碼
  1. hibernate.hbm2ddl.auto update  


例如:
    假設,有模型Entity,已用A使用者執行過配置有hibernate的系統或者程式,則,此時資料庫中有A.Entity表存在了。將hibernate配置使用者改為B,然後執行系統或者程式。將會發現hibernate不會為我們建立B.Entity表。
    如果Entity模型在以A使用者執行過後經過修改,同時會發現hibernate既不會建立B.Entity表,也不會更改A.Entity表的結構

如果想讓hibernate執行上述描述的特殊操作方式需要在hibernate的配置上指明使用者的Schema名,即在hibernate配置新增上
Java程式碼  收藏程式碼
  1. hibernate.default_schema xxxx  

做個說明,Oracle中表的完整定位為username.tablename,而新增這個hibernate.default_schema的配置就是使hibernate在查詢表的時候加上這個username的字首(可能這解釋有點不妥)

注:
這個問題在hibernate的3.0beta1時,就有人在hibernate的jira上提出
解決的方法在Gavin King的回覆中找到

相關推薦

[Hibernate]Oracle 不同使用者同名問題

一般來說Hibernate配置資料庫連線只需要下面幾行配置 Java程式碼   ##Oracle 9i/10g  hibernate.dialect org.hibernate.dialect.Oracle9Dialect  hibernate.connectio

Oracle 同一SID下不同使用者同名問題

一般來說hibernate配置資料庫連線只需要下面幾行配置 ##Oracle 9i/10g hibernate.dialect org.hibernate.dialect.Oracle9Dialect hibernate.connection.driver_

Hibernate命名策略自動改變或欄位的問題

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl http://stackoverflow.com

oracle 查詢當前使用者

當一個工程比較大的時候,會涉及到多個模組,自然就涉及到多個數據表(table),有時候記不清楚表的全名叫什麼,只知道表的一部分名字,這樣我們可以用下面的SQl來查詢我們模糊的表:SELECT table_name from user_tables WHERE table_n

Oracle sql語句修改

方法1:在原表上修改表名 ALTER TABLE  [原表名稱]  RENAME TO [新表名稱]; 方法2:建新表xinTable,將原表oldTable的資料導進去; create table xintable as select * from oldTable;

獲取oracle 表字段,,以及主鍵之類等等的資訊。

獲取表名: Oracle的user_talbes用於記錄了使用者表資訊。 select * from user_tables 獲取某個表的欄位: USER_TAB_COLS中記錄了使用者表的列資訊。下面是別人寫的: SELECT USER_TAB_COLS.TABLE_

Hibernate--根據實體類獲得、主鍵、欄位(與Spring整合)(二)

在上一篇中,我們建立了HibernateConfigurationUtil類,可以通過它來獲得實體類對應的表名、列名等相關資訊,本篇我們會就藉助於HibernateConfigurationUtil類以及Java反射,來實現一個JDBCUitl工具類,實現類似於Hibern

ORACLE 獲取資料庫所有欄位

   Class.forName(driverClassName);    // 建立連線    Connection con = DriverManager.getConnection(url,userName,password);    // 建立狀態    Statement stmt = con.cr

mybatis oracle不同空間重複與批量刪除,新增

mybatis自動生成中會遇到oracle不同表空間中有相同的表明,錯誤提示讓你選擇指定表空間 需要在生成的xml中新增指定的表空間使用者名稱就可以了 <!--   tableName="你要生成的資料庫表名" --><table schema="c##t

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

首先我們要明確:表名和使用者沒有關係,關鍵的一個例項下,不能有相同的表名存在。也就是說Oracle資料庫系統中,可以有多個數據庫,每一個數據庫可以有多個數據表。同一個資料庫中不能有相同名稱的資料表,但在不同的資料庫中可以有相同的資料表名。 通常情況我們都是

mysql等大小寫敏感問題、字段類型timestamp、批量修改oracle查詢歷史操作記錄等

table 時間 lar 內容 sele values 當前日期 load 兩個 mysql表名等大小寫敏感問題:http://blog.csdn.net/postnull/article/details/72455768; 1 MySQL在Linux下數據庫名、表名、

Spring Boot + JPA(hibernate 5) 開發時,數據庫大小寫問題

hibernate mysql spring boot 大小寫 這幾天在用spring boot開發項目, 在開發的過程中遇到一個問題hibernate在執行sql時,總會提示表不存在。尋找之後發現, 建表時,表統一采用了大寫。hibernate會把大寫統一轉換成小寫。且 mysql在 lin

Oracle根據查詢過程

mage blog 輸入 根據 style oracl name Owner tinc 一、根據sql查詢 SELECT NAME, TYPE, REFERENCED_OWNER, REFERENCED_NAME, REFERENCED_TYPE FROM USER_

Oracle 獲取和某個的所有列名

from select round gpo col class log nbsp key 獲取某用戶下所有的表名: select table_name from user_tables order by table_name; 獲取某用戶下某個表的所有列名 where

關於oracle sql語句查詢時 和字段要加雙引號的問題具體解釋

ont tin rac 作者 什麽 因此 tro 們的 reg 作為oracle的剛開始學習的人相信大家一定會遇到這個問題。如圖: 明明就是navicat可視化創建了表,但是就是不能查到!這個

oracle 中如何查詢當前用戶可以看到的對應的所有字段

tables .com pre column inner bsp nts .data code 前言:利用 oracle 的視圖來查詢表的相關信息。 oracle 查詢當前用戶下的表名 + 表註釋 select t.table_name tableName, f.co

MySQL、SQL server 、Oracle資料庫中查詢所有的資料庫,查詢指定資料庫所有,查詢所有的欄位的名字

MySQL中查詢所有資料庫名和表名 1.查詢所有資料庫 show databases; 2.查詢指定資料庫中所有表名 select table_name from information_schema.tables where table_schema='database_name' a

大資料量單不同列名間的資料遷移

(windows Server 2008 R2+oracle 11g) 單表資料1.5億條記錄,90個欄位,檔案大小70G 處理思路:源端單表exp,目標端單表imp,再通過欄位對應關係轉入到目標表(不同表名、列名) exp username1/password1 buffer=6400

python指令碼直接匯出oracle table到csv(./oracletest.py

#!/usr/bin/env python ##saveas oracletest.py ##chmod 755 oracletest.py ##./oracletest.py ab01_ import sys import 

oracle中的欄位和全部修改為小寫

在建立表和表結構的時候,如果想要小寫需要在名稱上面新增雙引號,如果不新增oracle資料庫會預設識別為大寫 1.將表名和欄位名改為大寫 批量將表名變為大寫 begin    for c in (select table_name tn from user_tabl