我有,當我試圖映射實體以下錯誤:ORA-00942:表或視圖不存在 - 與非大寫字母休眠
ORA-00942:表或視圖不存在
我發現問題在於,hibernate試圖以「非大寫」(小寫)字母查找表名,但Oracle擁有大寫字母的表名(儘管表是用非大寫字母)。 我可以解決這個問題,如果我添加註釋@Table和@Column把名稱放在大寫字母,但我不想添加這些註釋。
我想知道是否有任何不同的方式來做到這一點。
SQL:
create table foo(
id integer not null
);
alter table foo
add constraint foo_pk
primary key (id);
實體不工作:
@Entity
public class Foo {
@Id
private Long id;
//getter and setter
}
實體是工作:
@Entity
@Table(name = "FOO")
public class Foo {
@Id
private Long id;
//getter and setter
}
謝謝!
Oracle中的表名和列名不區分大小寫,所以應該會導致問題。你能發佈與問題相關的代碼嗎?但是,在訪問表元數據的數據字典視圖時可能會遇到問題,因爲表/列名的確存儲爲大寫。 –
只有當未引用對象名時才區分大小寫: OBJECT_NAME = object_name = Object_Name <>「Object Name」。 ORM使用共同的引用符號。 – Husqvik
我添加了代碼作爲例子。 – Roman