In Hibernate 4.x, specifically 4.3.11 , all worked as expected.
{code:xml|title= * persistence.xml snippet } * {code:xml} <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /> <property name="hibernate.hbm2ddl.auto" value="create-drop" /> <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:unittests" /> {code}
{code:sql|title= * 4.x generated SQL } * Hibernate {code : sql} create table dbo.office (officeid bigint generated by default as identity, office varchar(255) not null, description varchar(255), sequence varchar(255), orgid bigint not null, primary key (officeid)) {code} {code:sql|title= In 5.x the DB structure has changed in incompatible ways.
*5.x generated SQL } * {code:sql} create table dbo.office (officeid bigint not null, office varchar(255) not null, description varchar(255), sequence varchar(255), orgid bigint not null, primary key (officeid))
create sequence hibernate_sequence start with 1 increment by 1 {code}
I have confirmed the dialect values are sensible. The error seems to be inside / around the {{ SessionFactoryImpl }} 's {{ identifierGenerators }} . While the dialect indicates Identity generation, the generator seems to be a result of {{ DefaultIdentifierGeneratorFactory }} , which produces sequence based ids.
Specifically the {{ metadata.getEntityBindings() }} returns a {{ PersistentClass }} model where the identifier is a {{ SimpleValue }} whose {{ identifierGenerator }} is a {{ SequenceStyleGenerator }} .
This can be backtracked to:
*EntityManagerFactoryBuilderImpl*
{code:java |title=EntityManagerFactoryBuilderImpl } private MetadataImplementor metadata() { if ( this.metadata == null ) { this.metadata = MetadataBuildingProcess.complete( managedResources, metamodelBuilder.getMetadataBuildingOptions() ); } return metadata; } {code}
This is not related to: * [ HHH-13727 ] * [ HHH-13597 ]
|
|