Package org.hibernate.id.enhanced

Examples of org.hibernate.id.enhanced.SequenceStyleGenerator


   */
  public void testForceTableUse() {
    Dialect dialect = new SequenceDialect();
    Properties props = new Properties();
    props.setProperty( SequenceStyleGenerator.FORCE_TBL_PARAM, "true" );
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( TableStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.NoopOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );
  }
View Full Code Here


    // optimizer=none w/ increment > 1 => should honor optimizer
    Properties props = new Properties();
    props.setProperty( SequenceStyleGenerator.OPT_PARAM, OptimizerFactory.NONE );
    props.setProperty( SequenceStyleGenerator.INCREMENT_PARAM, "20" );
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.NoopOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( 1, generator.getOptimizer().getIncrementSize() );
    assertEquals( 1, generator.getDatabaseStructure().getIncrementSize() );

    // optimizer=hilo w/ increment > 1 => hilo
    props = new Properties();
    props.setProperty( SequenceStyleGenerator.OPT_PARAM, OptimizerFactory.HILO );
    props.setProperty( SequenceStyleGenerator.INCREMENT_PARAM, "20" );
    generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.HiLoOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( 20, generator.getOptimizer().getIncrementSize() );
    assertEquals( 20, generator.getDatabaseStructure().getIncrementSize() );

    // optimizer=pooled w/ increment > 1 => hilo
    props = new Properties();
    props.setProperty( SequenceStyleGenerator.OPT_PARAM, OptimizerFactory.POOL );
    props.setProperty( SequenceStyleGenerator.INCREMENT_PARAM, "20" );
    generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    // because the dialect reports to not support pooled seqyences, the expectation is that we will
    // use a table for the backing structure...
    assertClassAssignability( TableStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( 20, generator.getOptimizer().getIncrementSize() );
    assertEquals( 20, generator.getDatabaseStructure().getIncrementSize() );

  }
View Full Code Here

  }

  public void testNormalBoundary() {
    EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
    assertClassAssignability( SequenceStyleGenerator.class, persister.getIdentifierGenerator().getClass() );
    SequenceStyleGenerator generator = ( SequenceStyleGenerator ) 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.getDatabaseStructure().getTimesAccessed() );
      assertEquals( expectedId, generator.getOptimizer().getLastSourceValue() );
    }
    s.getTransaction().commit();

    s.beginTransaction();
    for ( int i = 0; i < count; i++ ) {
View Full Code Here

  }

  public void testNormalBoundary() {
    EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
    assertClassAssignability( SequenceStyleGenerator.class, persister.getIdentifierGenerator().getClass() );
    SequenceStyleGenerator generator = ( SequenceStyleGenerator ) 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] );
      long expectedId = i + 1;
      assertEquals( expectedId, entities[i].getId().longValue() );
      assertEquals( 2, generator.getDatabaseStructure().getTimesAccessed() ); // initialization calls table twice
      assertEquals( increment + 1, optimizer.getLastSourceValue() ); // initialization calls table 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 ] );
    long expectedId = optimizer.getIncrementSize() + 1;
    assertEquals( expectedId, entities[ optimizer.getIncrementSize() ].getId().longValue() );
    assertEquals( 3, generator.getDatabaseStructure().getTimesAccessed() ); // initialization (2) + clock over
    assertEquals( ( increment * 2 ) + 1, optimizer.getLastSourceValue() ); // initialization (2) + clock over
    assertEquals( increment + 1, optimizer.getLastValue() );
    s.getTransaction().commit();

    s.beginTransaction();
View Full Code Here

  }

  public void testNormalBoundary() {
    EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
    assertClassAssignability( SequenceStyleGenerator.class, persister.getIdentifierGenerator().getClass() );
    SequenceStyleGenerator generator = ( SequenceStyleGenerator ) 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] );
      long expectedId = i + 1;
      assertEquals( expectedId, entities[i].getId().longValue() );
      assertEquals( 1, generator.getOptimizer().getLastSourceValue() );
      assertEquals( i + 1, optimizer.getLastValue() );
      assertEquals( increment + 1, optimizer.getHiValue() );
    }
    // now force a "clock over"
    entities[ increment ] = new Entity( "" + increment );
View Full Code Here

   * Test all params defaulted with a dialect supporting sequences
   */
  public void testDefaultedSequenceBackedConfiguration() {
    Dialect dialect = new SequenceDialect();
    Properties props = new Properties();
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );

    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.NoopOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );
  }
View Full Code Here

   * Test all params defaulted with a dialect which does not support sequences
   */
  public void testDefaultedTableBackedConfiguration() {
    Dialect dialect = new TableDialect();
    Properties props = new Properties();
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );

    assertClassAssignability( TableStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.NoopOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );
  }
View Full Code Here

    Properties props = new Properties();
    props.setProperty( SequenceStyleGenerator.INCREMENT_PARAM, "10" );

    // for dialects which do not support pooled sequences, we default to pooled+table
    Dialect dialect = new SequenceDialect();
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( TableStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );

    // for dialects which do support pooled sequences, we default to pooled+sequence
    dialect = new PooledSequenceDialect();
    generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.PooledOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );
  }
View Full Code Here

  }

  public void testNormalBoundary() {
    EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
    assertClassAssignability( SequenceStyleGenerator.class, persister.getIdentifierGenerator().getClass() );
    SequenceStyleGenerator generator = ( SequenceStyleGenerator ) 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.getDatabaseStructure().getTimesAccessed() ); // 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.getDatabaseStructure().getTimesAccessed() ); // initialization (2) + clock over
    assertEquals( ( increment * 2 ) + 1, optimizer.getLastSourceValue() ); // initialization (2) + clock over
    assertEquals( increment + 1, optimizer.getLastValue() );
    s.getTransaction().commit();

    s.beginTransaction();
View Full Code Here

  }

  public void testNormalBoundary() {
    EntityPersister persister = sfi().getEntityPersister( Entity.class.getName() );
    assertClassAssignability( SequenceStyleGenerator.class, persister.getIdentifierGenerator().getClass() );
    SequenceStyleGenerator generator = ( SequenceStyleGenerator ) 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.getDatabaseStructure().getTimesAccessed() );
      assertEquals( expectedId, generator.getOptimizer().getLastSourceValue() );
    }
    s.getTransaction().commit();

    s.beginTransaction();
    for ( int i = 0; i < count; i++ ) {
View Full Code Here

TOP

Related Classes of org.hibernate.id.enhanced.SequenceStyleGenerator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.