类org.hibernate.id.SequenceGenerator源码实例Demo

下面列出了怎么用org.hibernate.id.SequenceGenerator的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lams   文件: DefaultIdentifierGeneratorFactory.java
@Override
public void injectServices(ServiceRegistryImplementor serviceRegistry) {
	this.serviceRegistry = serviceRegistry;
	this.dialect = serviceRegistry.getService( JdbcEnvironment.class ).getDialect();
	final ConfigurationService configService = serviceRegistry.getService( ConfigurationService.class );

	final boolean useNewIdentifierGenerators = configService.getSetting(
			AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS,
			StandardConverters.BOOLEAN,
			true
	);

	if(!useNewIdentifierGenerators) {
		register( "sequence", SequenceGenerator.class );
	}
}
 
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 );
}
 
@Override
public Class getIdentifierGeneratorClass(String strategy) {
    Class generatorClass = super.getIdentifierGeneratorClass(strategy);
    if("native".equals(strategy) && generatorClass == SequenceGenerator.class) {
        generatorClass = super.getIdentifierGeneratorClass("sequence-identity");
    }
    return generatorClass;
}
 
源代码4 项目: cacheonix-core   文件: Dialect.java
/**
 * The class (which implements {@link org.hibernate.id.IdentifierGenerator})
 * which acts as this dialects native generation strategy.
 * <p/>
 * Comes into play whenever the user specifies the native generator.
 *
 * @return The native generator class.
 */
public Class getNativeIdentifierGeneratorClass() {
	if ( supportsIdentityColumns() ) {
		return IdentityGenerator.class;
	}
	else if ( supportsSequences() ) {
		return SequenceGenerator.class;
	}
	else {
		return TableHiLoGenerator.class;
	}
}
 
源代码5 项目: cacheonix-core   文件: PostgreSQLDialect.java
public Class getNativeIdentifierGeneratorClass() {
	return SequenceGenerator.class;
}
 
源代码6 项目: cacheonix-core   文件: HqlSqlWalker.java
public static boolean supportsIdGenWithBulkInsertion(IdentifierGenerator generator) {
	return SequenceGenerator.class.isAssignableFrom( generator.getClass() )
	        || PostInsertIdentifierGenerator.class.isAssignableFrom( generator.getClass() );
}
 
 类所在包
 同包方法