org.hibernate.id.enhanced.TableGenerator Java Examples
The following examples show how to use
org.hibernate.id.enhanced.TableGenerator.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DefaultIdentifierGeneratorFactory.java From lams with GNU General Public License v2.0 | 6 votes |
/** * Constructs a new DefaultIdentifierGeneratorFactory. */ @SuppressWarnings("deprecation") public DefaultIdentifierGeneratorFactory() { register( "uuid2", UUIDGenerator.class ); register( "guid", GUIDGenerator.class ); // can be done with UUIDGenerator + strategy register( "uuid", UUIDHexGenerator.class ); // "deprecated" for new use register( "uuid.hex", UUIDHexGenerator.class ); // uuid.hex is deprecated register( "assigned", Assigned.class ); register( "identity", IdentityGenerator.class ); register( "select", SelectGenerator.class ); register( "sequence", SequenceStyleGenerator.class ); register( "seqhilo", SequenceHiLoGenerator.class ); register( "increment", IncrementGenerator.class ); register( "foreign", ForeignGenerator.class ); register( "sequence-identity", SequenceIdentityGenerator.class ); register( "enhanced-sequence", SequenceStyleGenerator.class ); register( "enhanced-table", TableGenerator.class ); }
Example #2
Source File: IdentifierGeneration.java From hibernate-reactive with GNU Lesser General Public License v2.1 | 5 votes |
static QualifiedName determineTableName(Properties params, ServiceRegistry serviceRegistry) { String fallbackTableName = TableGenerator.DEF_TABLE; final Boolean preferGeneratorNameAsDefaultName = serviceRegistry.getService( ConfigurationService.class ) .getSetting( Settings.PREFER_GENERATOR_NAME_AS_DEFAULT_SEQUENCE_NAME, StandardConverters.BOOLEAN, true ); if ( preferGeneratorNameAsDefaultName ) { final String generatorName = params.getProperty( IdentifierGenerator.GENERATOR_NAME ); if ( StringHelper.isNotEmpty( generatorName ) ) { fallbackTableName = generatorName; } } String tableName = ConfigurationHelper.getString( TableGenerator.TABLE_PARAM, params, fallbackTableName ); QualifiedNameParser.NameParts qualifiedTableName; if ( tableName.contains( "." ) ) { qualifiedTableName = QualifiedNameParser.INSTANCE.parse( tableName ); } else { JdbcEnvironment jdbcEnvironment = serviceRegistry.getService( JdbcEnvironment.class ); // todo : need to incorporate implicit catalog and schema names final Identifier catalog = jdbcEnvironment.getIdentifierHelper().toIdentifier( ConfigurationHelper.getString( CATALOG, params ) ); final Identifier schema = jdbcEnvironment.getIdentifierHelper().toIdentifier( ConfigurationHelper.getString( SCHEMA, params ) ); qualifiedTableName = new QualifiedNameParser.NameParts( catalog, schema, jdbcEnvironment.getIdentifierHelper().toIdentifier( tableName ) ); } return qualifiedTableName; }
Example #3
Source File: ReactiveIdentifierGeneratorFactory.java From hibernate-reactive with GNU Lesser General Public License v2.1 | 5 votes |
private static IdentifierGenerator augmentWithReactiveGenerator(IdentifierGenerator generator, Type type, Properties params, ServiceRegistryImplementor serviceRegistry) { ReactiveIdentifierGenerator<?> reactiveGenerator; if (generator instanceof SequenceStyleGenerator) { DatabaseStructure structure = ((SequenceStyleGenerator) generator).getDatabaseStructure(); if (structure instanceof TableStructure) { reactiveGenerator = new TableReactiveIdentifierGenerator(true); } else if (structure instanceof SequenceStructure) { reactiveGenerator = new SequenceReactiveIdentifierGenerator(); } else { throw new IllegalStateException("unknown structure type"); } } else if (generator instanceof TableGenerator) { reactiveGenerator = new TableReactiveIdentifierGenerator(false); } else if (generator instanceof SequenceGenerator) { reactiveGenerator = new SequenceReactiveIdentifierGenerator(); } else if (generator instanceof SelectGenerator) { //TODO: this is easy to fix! throw new HibernateException("SelectGenerator is not yet supported in Hibernate Reactive"); } else { //nothing to do return generator; } ((Configurable) reactiveGenerator).configure( type, params, serviceRegistry ); return new ReactiveGeneratorWrapper<>( reactiveGenerator, generator ); }
Example #4
Source File: BasicTableTest.java From cacheonix-core with GNU Lesser General Public License v2.1 | 5 votes |
public void testNormalBoundary() { EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() ); assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() ); TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator(); int count = 5; Entity[] entities = new Entity[count]; Session s = openSession(); s.beginTransaction(); for ( int i = 0; i < count; i++ ) { entities[i] = new Entity( "" + ( i + 1 ) ); s.save( entities[i] ); long expectedId = i + 1; assertEquals( expectedId, entities[i].getId().longValue() ); assertEquals( expectedId, generator.getTableAccessCount() ); assertEquals( expectedId, generator.getOptimizer().getLastSourceValue() ); } s.getTransaction().commit(); s.beginTransaction(); for ( int i = 0; i < count; i++ ) { assertEquals( i + 1, entities[i].getId().intValue() ); s.delete( entities[i] ); } s.getTransaction().commit(); s.close(); }
Example #5
Source File: PooledTableTest.java From cacheonix-core with GNU Lesser General Public License v2.1 | 5 votes |
public void testNormalBoundary() { EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() ); assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() ); TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator(); assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() ); OptimizerFactory.PooledOptimizer optimizer = ( OptimizerFactory.PooledOptimizer ) generator.getOptimizer(); int increment = optimizer.getIncrementSize(); Entity[] entities = new Entity[ increment + 1 ]; Session s = openSession(); s.beginTransaction(); for ( int i = 0; i < increment; i++ ) { entities[i] = new Entity( "" + ( i + 1 ) ); s.save( entities[i] ); assertEquals( 2, generator.getTableAccessCount() ); // initialization calls seq twice assertEquals( increment + 1, optimizer.getLastSourceValue() ); // initialization calls seq twice assertEquals( i + 1, optimizer.getLastValue() ); assertEquals( increment + 1, optimizer.getLastSourceValue() ); } // now force a "clock over" entities[ increment ] = new Entity( "" + increment ); s.save( entities[ increment ] ); assertEquals( 3, generator.getTableAccessCount() ); // initialization (2) + clock over assertEquals( ( increment * 2 ) + 1, optimizer.getLastSourceValue() ); // initialization (2) + clock over assertEquals( increment + 1, optimizer.getLastValue() ); s.getTransaction().commit(); s.beginTransaction(); for ( int i = 0; i < entities.length; i++ ) { assertEquals( i + 1, entities[i].getId().intValue() ); s.delete( entities[i] ); } s.getTransaction().commit(); s.close(); }
Example #6
Source File: HiLoTableTest.java From cacheonix-core with GNU Lesser General Public License v2.1 | 5 votes |
public void testNormalBoundary() { EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() ); assertClassAssignability( TableGenerator.class, persister.getIdentifierGenerator().getClass() ); TableGenerator generator = ( TableGenerator ) persister.getIdentifierGenerator(); assertClassAssignability( OptimizerFactory.HiLoOptimizer.class, generator.getOptimizer().getClass() ); OptimizerFactory.HiLoOptimizer optimizer = ( OptimizerFactory.HiLoOptimizer ) generator.getOptimizer(); int increment = optimizer.getIncrementSize(); Entity[] entities = new Entity[ increment + 1 ]; Session s = openSession(); s.beginTransaction(); for ( int i = 0; i < increment; i++ ) { entities[i] = new Entity( "" + ( i + 1 ) ); s.save( entities[i] ); assertEquals( 1, generator.getTableAccessCount() ); // initialization assertEquals( 1, optimizer.getLastSourceValue() ); // initialization assertEquals( i + 1, optimizer.getLastValue() ); assertEquals( increment + 1, optimizer.getHiValue() ); } // now force a "clock over" entities[ increment ] = new Entity( "" + increment ); s.save( entities[ increment ] ); assertEquals( 2, generator.getTableAccessCount() ); // initialization assertEquals( 2, optimizer.getLastSourceValue() ); // initialization assertEquals( increment + 1, optimizer.getLastValue() ); assertEquals( ( increment * 2 ) + 1, optimizer.getHiValue() ); s.getTransaction().commit(); s.beginTransaction(); for ( int i = 0; i < entities.length; i++ ) { assertEquals( i + 1, entities[i].getId().intValue() ); s.delete( entities[i] ); } s.getTransaction().commit(); s.close(); }
Example #7
Source File: TableReactiveIdentifierGenerator.java From hibernate-reactive with GNU Lesser General Public License v2.1 | 4 votes |
protected String determineValueColumnNameForTable(Properties params, JdbcEnvironment jdbcEnvironment) { final String name = ConfigurationHelper.getString(TableGenerator.VALUE_COLUMN_PARAM, params, TableGenerator.DEF_VALUE_COLUMN ); return jdbcEnvironment.getIdentifierHelper().toIdentifier( name ).render( jdbcEnvironment.getDialect() ); }
Example #8
Source File: TableReactiveIdentifierGenerator.java From hibernate-reactive with GNU Lesser General Public License v2.1 | 4 votes |
protected int determineInitialValueForTable(Properties params) { return ConfigurationHelper.getInt( TableGenerator.INITIAL_PARAM, params, TableGenerator.DEFAULT_INITIAL_VALUE ); }