Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -re4a02880e69f307b39bc6cebc9a382ad6fa4076a -r6611d2eeb9fb993793125322f07866b2c1841d94 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java =================================================================== diff -u -r29276ae77ec41cd93deff18fc89fd656d2ad3ed2 -r6611d2eeb9fb993793125322f07866b2c1841d94 --- lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java (.../AbstractLamsTestCase.java) (revision 29276ae77ec41cd93deff18fc89fd656d2ad3ed2) +++ lams_common/src/java/org/lamsfoundation/lams/test/AbstractLamsTestCase.java (.../AbstractLamsTestCase.java) (revision 6611d2eeb9fb993793125322f07866b2c1841d94) @@ -11,6 +11,8 @@ import java.util.Map; +import javax.sql.DataSource; + import junit.framework.TestCase; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Session; @@ -19,6 +21,7 @@ import org.lamsfoundation.lams.util.wddx.WDDXProcessor; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.orm.hibernate.SessionFactoryUtils; import org.springframework.orm.hibernate.SessionHolder; import org.springframework.transaction.support.TransactionSynchronizationManager; @@ -162,4 +165,15 @@ return null; } + /** Get the largest id in a table. This will normally be the last + * id inserted. Why not use LAST_INSERT_ID() - that works per connection and there is + * no guarantee that this test case is running using the same connection as the + * service. + */ + protected long getMaxId(String tablename, String idname, DataSource dataSource) + { + JdbcTemplate jt = new JdbcTemplate(dataSource); + return jt.queryForLong("SELECT max("+idname+") FROM "+tablename); + } + }