This issue is not the essence of HHH-10956, but instead some other issue. It is likely an issue with the Unit Testing DB/Dialect. Further investigation will be required.
The schema generation should have produced
{code:sql}create table CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI ( nid bigint generated by default as identity, name varchar(255), hid_hid bigint not null, parent_hid_hid bigint, parent_nid bigint, primary key (hid_hid, nid) )
create table CompositeIdFkGeneratedValueIdentityTest$HeadI ( hid bigint generated by default as identity, name varchar(255), primary key (hid) )
create table CompositeIdFkGeneratedValueIdentityTest$NodeI ( nid bigint generated by default as identity, name varchar(255), hid_hid bigint not null, primary key (hid_hid, nid) ){code}
but instead it produced:
{noformat}19:06:01,221 DEBUG SQL:128 - create table CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI ( nid bigint not null, name varchar(255), hid_hid bigint not null, parent_hid_hid bigint, parent_nid bigint, primary key (hid_hid, nid) ) 19:06:01,228 DEBUG SQL:128 - create table CompositeIdFkGeneratedValueIdentityTest$HeadI ( hid bigint generated by default as identity, name varchar(255), primary key (hid) ) 19:06:01,239 DEBUG SQL:128 - create table CompositeIdFkGeneratedValueIdentityTest$NodeI ( nid bigint not null, name varchar(255), hid_hid bigint generated by default as identity, primary key (hid_hid, nid) ) 19:06:01,241 WARN ExceptionHandlerLoggedImpl:27 - GenerationTarget encountered exception accepting command : Error executing DDL " create table CompositeIdFkGeneratedValueIdentityTest$NodeI ( nid bigint not null, name varchar(255), hid_hid bigint generated by default as identity, primary key (hid_hid, nid) )" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table CompositeIdFkGeneratedValueIdentityTest$NodeI ( nid bigint not null, name varchar(255), hid_hid bigint generated by default as identity, primary key (hid_hid, nid) )" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:439) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:423) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:314) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:156) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:468) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708) at org.hibernate.testing.junit4.BaseCoreFunctionalTestCase.buildSessionFactory(BaseCoreFunctionalTestCase.java:119) at org.hibernate.testing.junit4.BaseCoreFunctionalTestCase.buildSessionFactory(BaseCoreFunctionalTestCase.java:106) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hibernate.testing.junit4.TestClassMetadata.performCallbackInvocation(TestClassMetadata.java:205) at org.hibernate.testing.junit4.TestClassMetadata.invokeCallback(TestClassMetadata.java:192) at org.hibernate.testing.junit4.TestClassMetadata.performCallbacks(TestClassMetadata.java:184) at org.hibernate.testing.junit4.TestClassMetadata.performBeforeClassCallbacks(TestClassMetadata.java:175) at org.hibernate.testing.junit4.BeforeClassCallbackHandler.evaluate(BeforeClassCallbackHandler.java:25) at org.hibernate.testing.junit4.AfterClassCallbackHandler.evaluate(AfterClassCallbackHandler.java:25) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:106) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:66) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:748) Caused by: org.h2.jdbc.JdbcSQLException: Attempt to define a second primary key; SQL statement:
create table CompositeIdFkGeneratedValueIdentityTest$NodeI ( nid bigint not null, name varchar(255), hid_hid bigint generated by default as identity, primary key (hid_hid, nid) ) [90017-196] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.message.DbException.get(DbException.java:144) at org.h2.command.ddl.CreateTable.setPrimaryKeyColumns(CreateTable.java:280) at org.h2.command.ddl.CreateTable.addConstraintCommand(CreateTable.java:86) at org.h2.command.Parser.parseCreateTable(Parser.java:6152) at org.h2.command.Parser.parseCreate(Parser.java:4351) at org.h2.command.Parser.parsePrepared(Parser.java:366) at org.h2.command.Parser.parse(Parser.java:321) at org.h2.command.Parser.parse(Parser.java:293) at org.h2.command.Parser.prepareCommand(Parser.java:258) at org.h2.engine.Session.prepareLocal(Session.java:578) at org.h2.engine.Session.prepareCommand(Session.java:519) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 54 more{noformat}
resulting in the following faulty runtime:
{noformat}19:06:01,926 INFO CustomRunner:123 - Test: testCompositePkWithIdentityAndFKByIdentity2 19:06:01,930 DEBUG StatisticsInitiator:101 - Statistics initialized [enabled=false] 19:06:01,933 DEBUG SQL:128 - insert into CompositeIdFkGeneratedValueIdentityTest$HeadI (hid, name) values (null, ?) 19:06:01,934 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Head by Identity] VALUE =>Head by Identity=1 19:06:01,935 DEBUG SQL:128 - call next value for hibernate_sequence VALUE =>Node by Identity=1:1 with parent=null 19:06:01,938 DEBUG SQL:128 - call next value for hibernate_sequence VALUE =>Node 2 by Identity=2:1 with parent=1:1 19:06:01,938 DEBUG SQL:128 - insert into CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI (name, parent_hid_hid, parent_nid, hid_hid, nid) values (?, ?, ?, ?, ?) 19:06:01,939 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Node by Identity] 19:06:01,939 TRACE BasicBinder:52 - binding parameter [2] as [BIGINT] - [null] 19:06:01,940 TRACE BasicBinder:52 - binding parameter [3] as [BIGINT] - [null] 19:06:01,940 TRACE BasicBinder:64 - binding parameter [4] as [BIGINT] - [1] 19:06:01,940 TRACE BasicBinder:64 - binding parameter [5] as [BIGINT] - [1] 19:06:01,940 DEBUG SQL:128 - insert into CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI (name, parent_hid_hid, parent_nid, hid_hid, nid) values (?, ?, ?, ?, ?) 19:06:01,940 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Node 2 by Identity] 19:06:01,940 TRACE BasicBinder:64 - binding parameter [2] as [BIGINT] - [1] 19:06:01,941 TRACE BasicBinder:64 - binding parameter [3] as [BIGINT] - [1] 19:06:01,941 TRACE BasicBinder:64 - binding parameter [4] as [BIGINT] - [1] 19:06:01,941 TRACE BasicBinder:64 - binding parameter [5] as [BIGINT] - [2]{noformat}
The offending unit test testCompositePkWithIdentityAndFKByIdentity2 is marked as {{@Ignore}} |
|