From: <hib...@li...> - 2006-03-31 00:27:12
|
Author: epbernard Date: 2006-03-30 19:26:43 -0500 (Thu, 30 Mar 2006) New Revision: 9721 Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java Log: ANN-295 ANN-296 Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java =================================================================== --- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-03-31 00:11:54 UTC (rev 9720) +++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-03-31 00:26:43 UTC (rev 9721) @@ -94,6 +94,7 @@ import org.hibernate.id.MultipleHiLoPerTableGenerator; import org.hibernate.id.PersistentIdentifierGenerator; import org.hibernate.id.TableHiLoGenerator; +import org.hibernate.id.SequenceHiLoGenerator; import org.hibernate.mapping.Component; import org.hibernate.mapping.DependantValue; import org.hibernate.mapping.IdGenerator; @@ -273,23 +274,24 @@ if ( !isDefault( tabGen.pkColumnValue() ) ) { idGen.addParam( MultipleHiLoPerTableGenerator.PK_VALUE_NAME, tabGen.pkColumnValue() ); } - idGen.addParam( TableHiLoGenerator.MAX_LO, String.valueOf( tabGen.allocationSize() ) ); + idGen.addParam( TableHiLoGenerator.MAX_LO, String.valueOf( tabGen.allocationSize() - 1 ) ); log.debug( "Add table generator with name: " + idGen.getName() ); } else if ( ann instanceof SequenceGenerator ) { SequenceGenerator seqGen = (SequenceGenerator) ann; idGen.setName( seqGen.name() ); - idGen.setIdentifierGeneratorStrategy( "sequence" ); + idGen.setIdentifierGeneratorStrategy( "seqhilo" ); if ( ! isDefault( seqGen.sequenceName() ) ) { idGen.addParam( org.hibernate.id.SequenceGenerator.SEQUENCE, seqGen.sequenceName() ); } //FIXME: work on initialValue() and allocationSize() through SequenceGenerator.PARAMETERS - if ( seqGen.initialValue() != 0 || seqGen.allocationSize() != 50 ) { + if ( seqGen.initialValue() != 0 ) { log.warn( - "Hibernate does not support SequenceGenerator.initialValue() nor SequenceGenerator.allocationSize()" + "Hibernate does not support SequenceGenerator.initialValue()" ); } + idGen.addParam( SequenceHiLoGenerator.MAX_LO, String.valueOf( seqGen.allocationSize() - 1 ) ); log.debug( "Add sequence generator with name: " + idGen.getName() ); } else if ( ann instanceof GenericGenerator ) { @@ -1559,7 +1561,7 @@ //yuk! this is a hack not to override 'AUTO' even if generator is set final boolean avoidOverriding = identifierGeneratorStrategy.equals( "identity" ) - || identifierGeneratorStrategy.equals( "sequence" ) + || identifierGeneratorStrategy.equals( "seqhilo" ) || identifierGeneratorStrategy.equals( MultipleHiLoPerTableGenerator.class.getName() ); if ( ! avoidOverriding ) { id.setIdentifierGeneratorStrategy( identifierGeneratorStrategy ); @@ -1738,7 +1740,7 @@ case TABLE: return MultipleHiLoPerTableGenerator.class.getName(); case SEQUENCE: - return "sequence"; + return "seqhilo"; } throw new AssertionFailure( "Unknown GeneratorType: " + generatorEnum ); } |