Hi guys, I finally managed to reproduce it - here's a small application that will generate the provided exception:
https://github.com/paranoiabla/hibernate-hsql-issue Please notice that it works fine with Hibernate 4.3.x I think it has to do something with the CommerceCustomerModel - If I remove it or remove the collection of payment infos that is inside of it, it all starts to work fine. Please have a look and thanks a lot for your efforts :) 2015-05-03 1:13 GMT+03:00 Petar Tahchiev <paranoia...@gmail.com>: > Hi guys, > > I just tried hibernate 5.0 beta2 and here's my observations. First of all > the foreign key problems I had before seems to be resolved, however I see > the following error when executing tests with HSQL: > > > Caused by: org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'defaultEntityManagerFactory' defined in class path > resource [com/nemesis/platform/core/config/PlatformCoreTestConfig.class]: > Invocation of init method failed; nested exception is > javax.persistence.PersistenceException: [PersistenceUnit: default] Unable > to build Hibernate SessionFactory > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) > at > org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1011) > at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:802) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:521) > at > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:687) > at > org.springframework.boot.SpringApplication.run(SpringApplication.java:321) > at > org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:100) > at > org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98) > at > org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116) > ... 36 more > Caused by: javax.persistence.PersistenceException: [PersistenceUnit: > default] Unable to build Hibernate SessionFactory > at > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:874) > at > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:802) > at > org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) > at > org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) > at > org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) > ... 50 more > Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Unable > to execute schema management to JDBC target [alter table payment_info add > constraint FKs9wud9nve6s9cbot5p4548jyh foreign key (user_pk) references > principal] > at > org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:75) > at > org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlString(SchemaMigratorImpl.java:349) > at > org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlStrings(SchemaMigratorImpl.java:338) > at > org.hibernate.tool.schema.internal.SchemaMigratorImpl.applyForeignKeys(SchemaMigratorImpl.java:303) > at > org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigrationToTargets(SchemaMigratorImpl.java:135) > at > org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:76) > at > org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:146) > at > org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:114) > at > org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:461) > at > org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462) > at > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:799) > ... 55 more > Caused by: java.sql.SQLSyntaxErrorException: object name already exists: > FKS9WUD9NVE6S9CBOT5P4548JYH in statement [alter table payment_info add > constraint FKs9wud9nve6s9cbot5p4548jyh foreign key (user_pk) references > principal] > at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) > at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source) > at > com.zaxxer.hikari.proxy.StatementProxy.executeUpdate(StatementProxy.java:108) > at > com.zaxxer.hikari.proxy.StatementJavassistProxy.executeUpdate(StatementJavassistProxy.java) > at > org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:72) > ... 65 more > Caused by: org.hsqldb.HsqlException: object name already exists: > FKS9WUD9NVE6S9CBOT5P4548JYH > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.SchemaObjectSet.checkAdd(Unknown Source) > at org.hsqldb.SchemaManager.checkSchemaObjectNotExists(Unknown Source) > at org.hsqldb.TableWorks.checkCreateForeignKey(Unknown Source) > at org.hsqldb.TableWorks.addForeignKey(Unknown Source) > at org.hsqldb.StatementSchema.getResult(Unknown Source) > at org.hsqldb.StatementSchema.execute(Unknown Source) > at org.hsqldb.Session.executeCompiledStatement(Unknown Source) > at org.hsqldb.Session.executeDirectStatement(Unknown Source) > at org.hsqldb.Session.execute(Unknown Source) > ... 70 more > > > When running it with mysql it doesn't show this error (very strange) so I > tried to export the schema to sql file and I can see only one foregin key > declaration: > > alter table payment_info > add constraint FKs9wud9nve6s9cbot5p4548jyh > foreign key (user_pk) > references principal (pk); > > Notice that this time it is lowercase. I'm trying to debug the hsql but it > is very hard as it doesn't stop on any of the breakpoints I add. If any of > you have an idea what might be causing it, please share your thoughts, if > not I'll let you know how I progress. > > I wonder if it could be related to the duplicate joins warnings I see: > WARN : HHH000072: Duplicate joins for class: > com.nemesis.platform.core.model.media.MediaModel > WARN : HHH000072: Duplicate joins for class: > com.nemesis.platform.module.commerce.core.model.order.TerritoryDeliveryModeValueModel > WARN : HHH000072: Duplicate joins for class: > com.nemesis.platform.core.model.cms.AbstractPageModel > WARN : HHH000072: Duplicate joins for class: > com.nemesis.platform.core.model.cms.EmailPageModel > WARN : HHH000072: Duplicate joins for class: > com.nemesis.platform.core.model.cms.CategoryPageModel > ..... > > -- > Regards, Petar! > Karlovo, Bulgaria. > --- > Public PGP Key at: > https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611 > Key Fingerprint: A369 A7EE 61BC 93A3 CDFF 55A5 1965 8550 C311 0611 > -- Regards, Petar! Karlovo, Bulgaria. --- Public PGP Key at: https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611 Key Fingerprint: A369 A7EE 61BC 93A3 CDFF 55A5 1965 8550 C311 0611 _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev