I've never used the bulkUpdate method call. Hopefully someone on this list can help you. In the meantime, you might try posting this question to the Spring forums.
http://forum.springsource.org Matt On Thu, Jun 4, 2009 at 3:32 AM, Youssef Darzi <mr_da...@hotmail.com> wrote: > hi, > > I have a problem getting a test rolledback properly after it's execution, > eventhough i have this message "Rolled back transaction after execution of > test" in the console. > > So i tried to debug to see when the entities are committed, and i found out > that right after calling a method with the following code, > > public void removeBy(Configuration configuration, Track track, User > owner) { > > getHibernateTemplate() > .bulkUpdate("DELETE FROM FeatureRenderingOptions WHERE > parentConfiguration = ? AND parentTrack = ? AND owner = ? ", > new Object[] { configuration, track, owner }); > } > > the track passed in parameters is persisted in DB.(configuration and owner > comes from sample-data.xml). > > Here is my test > > public class FeatureRenderingOptionsDaoTest extends BaseDaoTestCase { > > public void testGetByRemoveBy() { > > log.debug("Start Test CreateRemove"); > > User owner = userDao.get(-1L); > Configuration configuration = configurationDao.get(-1L); > Track track = trackDao.get(-2L); > > List<FeatureRenderingOptions> featRendOpts = > featureRenderingOptionsDao.findBy(configuration, track, owner); > assertNotNull(featRendOpts); > assertTrue(featRendOpts.size() == 0); > > log.debug("creating a new Track"); > Track track2 = ConfigurationDaoTest.createInitializedTrack("Test > Track", owner); > track2 = trackDao.save(track2); > flush(); > log.debug("track2 successfully saved"); > > log.debug("creating a new FeatureRenderingOptions"); > FeatureRenderingOptions featureRenderingOption = > createFeatureRenderingOptions( > track2, configuration, owner, datasetDao.get(-1L), > createColorModel(Color.black, Color.black, 0), > createColorModel(Color.black, Color.black, 1)); > > featureRenderingOptionsDao.save(featureRenderingOption); > flush(); > log.debug("featureRenderingOption successfully saved"); > > featRendOpts = featureRenderingOptionsDao.findBy(configuration, > track2,owner); > assertNotNull(featRendOpts); > assertTrue(featRendOpts.size() > 0); > log.debug("FeatureRenderingOptions found for 'configuration' and > 'track2'"); > > * //After this point track2 will become persistent in DB even when > the test is rolledback > featureRenderingOptionsDao.removeBy(configuration, track2, owner); > * > > featRendOpts = featureRenderingOptionsDao.findBy(configuration, > track2,owner); > assertNotNull(featRendOpts); > assertTrue(featRendOpts.size() == 0); > log.debug("No featureRenderingOptions found for configuration, > track2, owner"); > > log.debug("End Test CreateRemove"); > } > } > > This is the output of the test > > INFO - AbstractSingleSpringContextTests.loadContextLocations(210) | Loading > context for locations: > classpath:/applicationContext-resources.xml,classpath:/applicationContext-dao.xml,classpath*:/applicationContext.xml,classpath:**/applicationContext*.xml > DEBUG - AbstractTransactionalSpringContextTests.startNewTransaction(392) | > Began transaction (1): transaction manager > [org.springframework.orm.hibernate3.hibernatetransactionmana...@8ddb93]; > rollback [true]. > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(186) | Start Test > CreateRemove > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(196) | creating a > new Track > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(200) | track2 > successfully saved > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(202) | creating a > new FeatureRenderingOptions > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(210) | > featureRenderingOption successfully saved > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(215) | > FeatureRenderingOptions found for 'configuration' and 'track2' > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(222) | No > featureRenderingOptions found for configuration, track2, owner > DEBUG - FeatureRenderingOptionsDaoTest.testGetByRemoveBy(224) | End Test > CreateRemove > DEBUG - AbstractTransactionalSpringContextTests.endTransaction(360) | > Rolled back transaction after execution of test [testGetByRemoveBy]. > > Now if i change the implementation of the removeBy(Configuration > configuration, Track track, User owner) method to > > public void removeBy(Configuration configuration, Track track, User owner) > { > getHibernateTemplate().deleteAll(findBy(configuration, track, owner)); > } > > everything works fine, the test succeeds and no more new entities in BD. > > So am i missing something here ?? > > > cheers, > > Youssef > ------------------------------ > What can you do with the new Windows Live? Find > out<http://www.microsoft.com/windows/windowslive/default.aspx> >