@Test public void testExplicitTableGeneratorImplicitName() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); final Metadata bootModel = new MetadataSources( ssr ) .addAnnotatedClass( ExplicitTableGeneratorImplicitNameEntity.class ) .buildMetadata(); final PersistentClass entityMapping = bootModel.getEntityBinding( ExplicitTableGeneratorImplicitNameEntity.class.getName() ); final IdentifierGenerator generator = entityMapping.getIdentifier().createIdentifierGenerator( bootModel.getIdentifierGeneratorFactory(), ssr.getService( JdbcEnvironment.class ).getDialect(), null, null, (RootClass) entityMapping ); final TableGenerator tableGenerator = assertTyping( TableGenerator.class, generator ); assertThat( tableGenerator.getTableName(), is( "my_id_table" ) ); // - note : currently initialValue=1 in mapping is shows up here as 2 assertThat( tableGenerator.getInitialValue(), is( 1 ) ); assertThat( tableGenerator.getIncrementSize(), is( 25 ) ); }
@Test public void testImplicitTableGenerator() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); final Metadata bootModel = new MetadataSources( ssr ) .addAnnotatedClass( ImplicitTableGeneratorEntity.class ) .buildMetadata(); final PersistentClass entityMapping = bootModel.getEntityBinding( ImplicitTableGeneratorEntity.class.getName() ); final IdentifierGenerator generator = entityMapping.getIdentifier().createIdentifierGenerator( bootModel.getIdentifierGeneratorFactory(), ssr.getService( JdbcEnvironment.class ).getDialect(), null, null, (RootClass) entityMapping ); final TableGenerator tableGenerator = assertTyping( TableGenerator.class, generator ); assertThat( tableGenerator.getTableName(), is( "my_id_table" ) ); // all the JPA defaults since they were not defined assertThat( tableGenerator.getInitialValue(), is( 1 ) ); assertThat( tableGenerator.getIncrementSize(), is( 50 ) ); }
@Test public void testExplicitTableGenerator() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); final Metadata bootModel = new MetadataSources( ssr ) .addAnnotatedClass( ExplicitTableGeneratorEntity.class ) .buildMetadata(); final PersistentClass entityMapping = bootModel.getEntityBinding( ExplicitTableGeneratorEntity.class.getName() ); final IdentifierGenerator generator = entityMapping.getIdentifier().createIdentifierGenerator( bootModel.getIdentifierGeneratorFactory(), ssr.getService( JdbcEnvironment.class ).getDialect(), null, null, (RootClass) entityMapping ); final TableGenerator tableGenerator = assertTyping( TableGenerator.class, generator ); assertThat( tableGenerator.getTableName(), is( "my_real_id_table" ) ); // all the JPA defaults since they were not defined // - note : currently initialValue=1 in mapping is shows up here // as 2 // assertThat( tableGenerator.getInitialValue(), is( 1 ) ); assertThat( tableGenerator.getIncrementSize(), is( 25 ) ); }
@Test public void testMinimalTableEntity() { final EntityPersister persister = sessionFactory().getEntityPersister( MinimalTableEntity.class.getName() ); IdentifierGenerator generator = persister.getIdentifierGenerator(); assertTrue( TableGenerator.class.isInstance( generator ) ); TableGenerator tabGenerator = (TableGenerator) generator; assertEquals( MinimalTableEntity.TBL_NAME, tabGenerator.getTableName() ); assertEquals( TableGenerator.DEF_SEGMENT_COLUMN, tabGenerator.getSegmentColumnName() ); assertEquals( "MINIMAL_TBL", tabGenerator.getSegmentValue() ); assertEquals( TableGenerator.DEF_VALUE_COLUMN, tabGenerator.getValueColumnName() ); // 0 is the annotation default, but its expected to be treated as 1 assertEquals( 1, tabGenerator.getInitialValue() ); // 50 is the annotation default assertEquals( 50, tabGenerator.getIncrementSize() ); assertTrue( PooledOptimizer.class.isInstance( tabGenerator.getOptimizer() ) ); }
@Override public Table snapshot(IdentifierGenerator ig) { TableGenerator tableGenerator = (TableGenerator) ig; Table table = new Table().setName(tableGenerator.getTableName()); Column pkColumn = new Column(); pkColumn.setName(tableGenerator.getSegmentColumnName()); DataType pkDataType = new DataType(PK_DATA_TYPE); pkDataType.setColumnSize(tableGenerator.getSegmentValueLength()); pkColumn.setType(pkDataType); pkColumn.setCertainDataType(false); pkColumn.setRelation(table); table.getColumns().add(pkColumn); PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setName(tableGenerator.getTableName() + "PK"); primaryKey.addColumn(0, new Column(pkColumn.getName()).setRelation(table)); primaryKey.setTable(table); table.setPrimaryKey(primaryKey); Column valueColumn = new Column(); valueColumn.setName(tableGenerator.getValueColumnName()); valueColumn.setType(new DataType(VALUE_DATA_TYPE)); valueColumn.setNullable(false); valueColumn.setCertainDataType(false); valueColumn.setRelation(table); table.getColumns().add(valueColumn); return table; }