我用hibernate的oracle 11g。 Hibernate被配置爲在啓動時驗證模式,但由於某些原因,它無法找到一個表並失敗。DatabaseMetataData沒有看到表
我有一個奇怪的情況,其中java.sql.DatabaseMetaData
看到來自同一模式的其他表時看不到一個表(getTables
返回空結果集)。
所以我有以下情況:
String[] TYPES = {"TABLE", "VIEW"};
DatabaseMetaData meta = ...
meta.getTables(null, "SCHEMA_NAME", "TABLE1", TYPES).next(); // true
meta.getTables(null, "SCHEMA_NAME", "TABLE2", TYPES).next(); // false
但下列查詢執行成功:
select * from schemaName.table1
select * from schemaName.table2
更多我可以查詢字典表,看看這兩個表:
select * from user_tables where table_name in ('TABLE1', 'TABLE2')
可能是什麼原因?
是它的代名詞,或者是表名字實際上'TABLE2'('getTables'要求案件完全匹配)? –
@MarkRotteveel,這不是同義詞,我可以在'USER_TABLES'中看到該表 –