我剛開始使用ORMLite,並且正在家中使用它來實驗MySQL。現在我決定嘗試在Oracle上使用它,但注意到列名區分大小寫的問題。ORMLite和Oracle - 區分大小寫的列名稱
使用TableUtils.createTableIfNotExists()
時,它似乎會生成CREATE語句,將表名和列名用雙引號括起來。例如:
CREATE TABLE 「T_SUBURB」( 「ID」 NUMERIC, 「說明」 VARCHAR2(255) NOT NULL, 「gnaf」 VARCHAR2(255),PRIMARY KEY( 「ID」))
這意味着當我試圖在Oracle SQL Developer中查詢數據庫時,我必須使用雙引號來指定表名和列名。這在使用MySQL時似乎沒有發生。
我必須承認我是一個SQL新手,但在試圖查詢它們時,將每個表或列名稱用雙引號括起來似乎並不自然。看一下OracleDatabaseType的實現,看起來在這個例子中,實體名是有意雙引號的。
有沒有人知道一種方法來關閉這種行爲?
我目前正在從maven-central和Oracle 11g運行版本4.43。乾杯。
嗨Gray, 謝謝你的回答,你是正確的 - 表名是大寫的,我只是從內存中寫的例子。 我接受關於創建無效SQL的評論,然而ORMLite是我見過的第一個ORM,因爲使用了保留字或者在創建時並未失敗,或者在嘗試使用SQL時失敗。 我想知道是否可以有一個選項,允許我指定是否使用名稱轉義(默認爲true是向後兼容)。這樣開發人員可以選擇是否需要此功能。 – Aidos 2013-03-12 13:13:40
我向你保證,休眠和其他現代的ORM做同樣的轉義。問題是你不想使用大寫字母還是我錯過了某些@Aidos? – Gray 2013-03-12 16:19:38