최대 절전 모드에서 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'은 열 3은 TABLE_NAME 클릭을 나타냅니다
는 알 수 위의 코드 모든 열을 시도 사례가 정확한 일치라고 요구합니까?) –
@MarkRotteveel은 동의어가 아니므로'USER_TABLES'에있는 해당 테이블을 볼 수 있습니다 –