Use of HiLoGenerator with sql-util DAO classes

Version 1.1 by christoph_lechleitner@iteg_at on 2013-02-02 04.17:14

Add table ID_GENERATOR to TableDefinitions

TableInfo idGenerator=new TableInfo("ID_GENERATOR");

idGenerator.setColumns(Arrays.asList(

               new ColumnInfo("NEXT_ID",Types.BIGINT,20,null,false,null)

));

Instantiate an idGenerator bean

<bp:bean id="idGenerator" class="org.clazzes.util.sql.dao.HiLoIdGenerator"

         init-method="initialize" depends-on="databaseSetup">

  <bp:property name="dataSource" ref="dataSource"/>

databaseSetup is the bean representing the JDBC2XML SchemaManager (see this HowTo), depends-on assures, that the ID generator is started after the database tables are set up.

Variant: idGenerator bean using application specific table and column names:

<bp:bean id="idGenerator" class="org.clazzes.util.sql.dao.HiLoIdGenerator"

         init-method="initialize" depends-on="databaseSetup">

  <bp:property name="dataSource" ref="dataSource"/>

  <!-- idTableName, default: ID_GENERATOR -->

  <bp:property name="idTableName" value="MYAPP_ID_GENERATOR"/>

  <!-- nextIdColumnName, default: NEXT_ID -->

 <bp:property name="nextIdColumnName" value="NEXT_ID"/>

Set the IdGenerator in your DAOs

<bp:bean id="userDAO" class="at.egv.drust.impl.dao.jdbc.DsUserJdbcDAO">

  <bp:property name="idGenerator" ref="idGenerator"/>

  <bp:property name="generator" ref="sqlGenerator"/>

  <bp:property name="threadLocalKey" ref="jdbcUrl"/>