2016-06-07 21 views
6

hibernate crea e riempie correttamente il database alla prima esecuzione. Nella seconda esecuzione, ho visualizzato l'errore.Tentativo di risolvere metadati di chiave esterna dai metadati JDBC non è riuscito a trovare i mapping di colonna per la chiave esterna

Hibernate 5.2.0 e Oracle 12c. Si tratta di un bug? Trovo quasi nessuna informazione, quando google questo.

@ManyToOne 
    @JoinColumn(name="fk_report") 
    @ForeignKey(name="fk_report") 
    private Report report; 

Stacktrace:

Initial SessionFactory creation failed.org.hibernate.tool.schema.spi.SchemaManagementException: Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FK_REPORT] 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at bo.agi.config.HibernateUtil.buildSessionFactory(HibernateUtil.java:30) 
    at bo.agi.config.HibernateUtil.<clinit>(HibernateUtil.java:12) 
    at bo.agi.documentation.ReportDocumenter.doReportDocumentation(ReportDocumenter.java:124) 
    at bo.agi.documentation.BO_Exporter.main(BO_Exporter.java:237) 
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FK_REPORT] 
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:727) 
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:708) 
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getForeignKeys(InformationExtractorJdbcDatabaseMetaDataImpl.java:691) 
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.foreignKeys(TableInformationImpl.java:88) 
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getForeignKey(TableInformationImpl.java:99) 
    at org.hibernate.tool.schema.internal.SchemaMigratorImpl.findMatchingForeignKey(SchemaMigratorImpl.java:530) 
    at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applyForeignKeys(SchemaMigratorImpl.java:506) 
    at org.hibernate.tool.schema.internal.SchemaMigratorImpl.performMigration(SchemaMigratorImpl.java:315) 
    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:65) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:308) 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:476) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:707) 
    at bo.agi.config.H 

ibernateUtil.buildSessionFactory (HibernateUtil.java:27)

+0

Ho lo stesso problema con PostgreSQL. –

+0

Aggiorna il tuo ibernazione in 5.2.2, quindi il problema verrà risolto. Sembra che il 5.2.0 abbia boog. –

risposta

3

sembra 5.2.0 ha infatti un bug. Con 5.1.0 non ho problemi.

+1

Lo stesso qui - sembra un bug introdotto in 5.2.0 – mkurz

+0

Ya, ho trovato lo stesso problema, tuttavia, ho aggiornato in Hibernate 5.2.2 il problema è stato risolto. –