|
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 );
}
|