Stawiłem czoła temu dziwnemu wyjątkowi, próbując utrwalić pewne wartości w tabeli przy użyciu Hibernate w aplikacji Java. Jednak ten wyjątek występuje tylko dla jednej konkretnej tabeli/encji dla reszty tabel, jestem w stanie wykonać operacje crud poprzez Hibernate.Więcej niż jedna tabela znajdująca się w przestrzeni nazw (,) - SchemaExtractionException
Proszę znaleźć poniżej Stacktrace i daj mi znać, jeśli jest to w jakikolwiek sposób związane z kodem java lub jego błąd projektu bazy danych.
2016-04-28 11:52:34 ERROR XXXXXDao:44 - Failed to create sessionFactory object.org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (,) : YYYYYYY
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.XX.dao.XXXXXXXDao.main(XXXXXXXXDao.java:45)
Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (,) : YYYYYYY
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults(InformationExtractorJdbcDatabaseMetaDataImpl.java:381)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getTable(InformationExtractorJdbcDatabaseMetaDataImpl.java:279)
at org.hibernate.tool.schema.internal.exec.ImprovedDatabaseInformationImpl.getTableInformation(ImprovedDatabaseInformationImpl.java:109)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.performMigration(SchemaMigratorImpl.java:252)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:137)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:110)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:176)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:64)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:458)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at com.xx.dao.zzzzzzzzzzzzDAOFactory.configureSessionFactory(zzzzzzzDAOFactory.java:43)
at com.xx.dao.zzzzzzzzzzzzDAOFactory.buildSessionFactory(zzzzzzzzzDAOFactory.java:27)
at com.xx.dao.XXXXXXXXDao.main(XXXXXXXXDao.java:41)
Dzięki z góry za pomoc
Podniosłem to jako problem z Hibernate ORM https://hibernate.atlassian.net/browse/HHH-10718 i mam proponowaną poprawkę, którą testuję i mam nadzieję przesłać. – RichB
Dzięki RichB, zauważyłem jednak, że w schemacie bazy danych istnieje inny użytkownik, który utworzył tę samą tabelę. Może to być przyczyną, że hibernacja jest w stanie zobaczyć dwie tablice w przestrzeni nazw. – Anuj
Czy istnieje sposób ograniczenia wyszukiwania w trybie hibernacji tylko do jednego użytkownika tego schematu, a nie wszystkich użytkowników pod nim? Obecnie problem został rozwiązany przez usunięcie tego użytkownika, ponieważ nie było to wymagane. [Przetestowałem to, replikując kolejną tabelę o tej samej nazwie u innego użytkownika i daje to ten sam problem.] Jednak idąc dalej, długoterminowe rozwiązanie tego problemu będzie najlepsze, gdzie w hibernacji możemy ograniczyć wyszukiwanie naszego obiektu do konkretnego użytkownika schematu, a nie wszystkich jego użytkowników. – Anuj