Package org.hibernate.id.enhanced

Examples of org.hibernate.id.enhanced.SequenceStyleGenerator


  }

  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] );
      assertEquals( 1, generator.getDatabaseStructure().getTimesAccessed() ); // initialization
      assertEquals( 1, optimizer.getLastSourceValue() ); // initialization
      assertEquals( i + 1, optimizer.getLastValue() );
      assertEquals( increment + 1, optimizer.getHiValue() );
    }
    // now force a "clock over"
    entities[ increment ] = new Entity( "" + increment );
    s.save( entities[ increment ] );
    assertEquals( 2, generator.getDatabaseStructure().getTimesAccessed() ); // initialization
    assertEquals( 2, optimizer.getLastSourceValue() ); // initialization
    assertEquals( increment + 1, optimizer.getLastValue() );
    assertEquals( ( increment * 2 ) + 1, optimizer.getHiValue() );

    s.getTransaction().commit();
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 hilo
    Dialect dialect = new SequenceDialect();
    SequenceStyleGenerator generator = new SequenceStyleGenerator();
    generator.configure( Hibernate.LONG, props, dialect );
    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.HiLoOptimizer.class, generator.getOptimizer().getClass() );
    assertEquals( SequenceStyleGenerator.DEF_SEQUENCE_NAME, generator.getDatabaseStructure().getName() );

    // for dialects which do support pooled sequences, we default to pooled
    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 testDefaultOptimizerBasedOnIncrementBackedByTable() {
    Properties props = new Properties();
    props.setProperty( SequenceStyleGenerator.INCREMENT_PARAM, "10" );
    Dialect dialect = new TableDialect();
    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() );
  }
View Full Code Here

   */
  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 );
    assertClassAssignability( SequenceStructure.class, generator.getDatabaseStructure().getClass() );
    assertClassAssignability( OptimizerFactory.HiLoOptimizer.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();
    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

  }

  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.