/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.ogm.jpa.impl; import org.hibernate.id.MultipleHiLoPerTableGenerator; import org.hibernate.id.enhanced.SequenceStyleGenerator; import org.hibernate.id.enhanced.TableGenerator; import org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory; import org.hibernate.id.factory.spi.MutableIdentifierGeneratorFactory; import org.hibernate.ogm.id.impl.OgmIdentityGenerator; import org.hibernate.ogm.id.impl.OgmSequenceGenerator; import org.hibernate.ogm.id.impl.OgmTableGenerator; /** * Register OGM strategies for identifier generations * * @author Davide D'Alto * @author Gunnar Morling */ public class OgmMutableIdentifierGeneratorFactory extends DefaultIdentifierGeneratorFactory implements MutableIdentifierGeneratorFactory { public OgmMutableIdentifierGeneratorFactory() { // override the generators when AvailableSettings#USE_NEW_ID_GENERATOR_MAPPINGS is false register( "seqhilo", OgmSequenceGenerator.class ); register( MultipleHiLoPerTableGenerator.class.getName(), OgmTableGenerator.class ); // override the generators when AvailableSettings#USE_NEW_ID_GENERATOR_MAPPINGS is true register( TableGenerator.class.getName(), OgmTableGenerator.class ); register( SequenceStyleGenerator.class.getName(), OgmSequenceGenerator.class ); register( "identity", OgmIdentityGenerator.class ); } }