Use of HiLoGenerator with sql-util DAO classes
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"/> </bp:bean> |
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"/> </bp:bean> |
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"/> </bp:bean> |