List of usage examples for org.springframework.transaction.support TransactionCallback TransactionCallback
TransactionCallback
From source file:com.hmsinc.epicenter.tools.geocoder.FacilityGeocoder.java
/** * @param args/*from w ww. j a v a2 s.com*/ */ @SuppressWarnings("unchecked") public static void main(String[] args) { if (args.length == 5) { System.setProperty("db.driver", args[0]); System.setProperty("db.url", args[1]); System.setProperty("db.type", args[2]); System.setProperty("db.user", args[3]); System.setProperty("db.password", args[4]); appContext = new ClassPathXmlApplicationContext(CONTEXT_FILES); final ProviderRepository providerRepository = (ProviderRepository) appContext .getBean("providerRepository"); Validate.notNull(providerRepository); final Geocoder geocoder = (Geocoder) appContext.getBean("geocoder"); Validate.notNull(geocoder); final PlatformTransactionManager tm = (PlatformTransactionManager) appContext .getBean("transactionManager"); Validate.notNull(tm); final TransactionTemplate template = new TransactionTemplate(tm); List<Facility> facilities = (List<Facility>) template.execute(new TransactionCallback() { /* * (non-Javadoc) * * @see org.springframework.transaction.support.TransactionCallback#doInTransaction(org.springframework.transaction.TransactionStatus) */ public List<Facility> doInTransaction(TransactionStatus status) { return providerRepository.getList(Facility.class); } }); for (final Facility facility : facilities) { if (facility.getGeometry() == null && facility.getAddress1() != null && facility.getCity() != null && facility.getState() != null && facility.getZipcode() != null) { template.execute(new TransactionCallbackWithoutResult() { /* * (non-Javadoc) * * @see org.springframework.transaction.support.TransactionCallbackWithoutResult#doInTransactionWithoutResult(org.springframework.transaction.TransactionStatus) */ @Override protected void doInTransactionWithoutResult(TransactionStatus status) { System.out.println(facility.toString()); final Geometry geom = geocoder.geocode(facility.getAddress1(), facility.getCity(), facility.getState(), facility.getZipcode()); if (geom != null) { facility.setGeometry(geom); providerRepository.update(facility); } } }); } } } else { usage(); } }
From source file:com.vladmihalcea.CleanDbUtil.java
public static void cleanStore(final TransactionTemplate transactionTemplate, final EntityManager entityManager) { transactionTemplate.execute(new TransactionCallback<Void>() { @Override/* w w w.j av a2s.com*/ public Void doInTransaction(TransactionStatus transactionStatus) { entityManager.createQuery("delete from SubVersion where id > 0").executeUpdate(); entityManager.createQuery("delete from Version where id > 0").executeUpdate(); entityManager.createQuery("delete from Image where id > 0").executeUpdate(); entityManager.createQuery("delete from WarehouseProductInfo where id > 0").executeUpdate(); entityManager.createQuery("delete from Product where id > 0").executeUpdate(); entityManager.createQuery("delete from Company where id > 0").executeUpdate(); entityManager.flush(); return null; } }); }
From source file:net.collegeman.grails.e3db.DB.java
public static Object withTransaction(final Closure closure) { TransactionTemplate transactionTemplate = new Template().getTransactionTemplate(); if (transactionTemplate != null) { return transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus transaction) { return closure.call(); }/*from w ww . j a v a2 s.c o m*/ }); } else { return closure.call(); } }
From source file:org.openvpms.component.business.service.archetype.rule.ActSimpleRules.java
/** * Creates and saves a new act in a new transaction. * On return the supplied act will have a new unsaved relationship to the * new act.// w w w . j a v a 2s .c o m * * @param act the act * @param service the archetype service * @param manager the transaction manager * @see ArchetypeRuleServiceTestCase#testTransactionIsolation */ public static void insertNewActInIsolation(Act act, final IArchetypeService service, PlatformTransactionManager manager) { final Act related = (Act) service.create("act.simple"); TransactionTemplate template = new TransactionTemplate(manager); template.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW); // save the new act in a new transaction, suspending any current // transaction template.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { service.save(related); return null; } }); ActRelationship relationship = (ActRelationship) service.create("actRelationship.simple"); relationship.setName("a simple relationship"); relationship.setSource(related.getObjectReference()); relationship.setTarget(act.getObjectReference()); related.addActRelationship(relationship); act.addActRelationship(relationship); }
From source file:net.chrisrichardson.foodToGo.ui.domain.servlets.InitializeDatabaseServlet.java
public void init(ServletConfig sc) throws ServletException { super.init(sc); HibernateTransactionManager tm = (HibernateTransactionManager) getBean("myTransactionManager", HibernateTransactionManager.class); TransactionTemplate tt = new TransactionTemplate(tm); tt.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { HibernateTemplate hibernateTemplate = (HibernateTemplate) getBean("HibernateTemplate", HibernateTemplate.class); hibernateTemplate.save(RestaurantMother.makeRestaurant()); return null; }/*from w w w . j av a2 s. c o m*/ }); }
From source file:org.ensembl.gti.seqstore.database.HybridEnaCramSeqStore.java
@Override public void storeGenomeSequence(long sessionId, GenomeSequence genomeSequence) { log.info("Storing genome sequence " + genomeSequence.getStableId()); transactionTemplate.execute(new TransactionCallback<Void>() { @Override//from ww w . j a v a2 s .c o m public Void doInTransaction(TransactionStatus status) { String chk = storeSequenceEna(sessionId, genomeSequence.getSequence()); template.update(STORE_GENOME_SEQUENCE_SQL, genomeSequence.getGenomeId(), genomeSequence.getStableId(), chk, sessionId); return null; } }); }
From source file:app.core.TransactionNegativeTest.java
@Test public void testRollbackOnException() { session = Db.getSession();// w w w . j ava 2s. c om final TransactionStatus transactionStatus = getCurrentTransactionStatus(); // Assert.assertFalse(getCurrentTransaction().isActive()); new TransactionCallback<Object>() { @Override public Object doInTransaction(TransactionStatus transactionStatus) { try { // Assert.assertTrue(getCurrentTransaction().isActive()); session.save(new User("caca", "prout")); // Assert.assertTrue(getCurrentTransaction().isActive()); throw new RuntimeException("thrown on purpose. we want to check we get a rollback"); } finally { // Assert.assertTrue(getCurrentTransaction().isActive()); // Assert.assertTrue(getCurrentTransaction().wasRolledBack()); return null; } } }.doInTransaction(transactionStatus); //getCurrentTransaction().commit(); Assert.assertFalse(getCurrentTransaction().isActive()); // Assert.assertFalse(getCurrentTransaction().wasCommitted()); // Assert.assertTrue(getCurrentTransaction().wasRolledBack()); }
From source file:org.activiti.spring.SpringTransactionInterceptor.java
@SuppressWarnings("unchecked") public <T> T execute(final Command<T> command) { TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); transactionTemplate.setPropagationBehavior(transactionPropagation); T result = (T) transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { return next.execute(command); }//w w w. j a va 2 s . c o m }); return result; }
From source file:org.bitbucket.fbascheper.tutorial.envers.EnversIllustrationTest.java
@Test public void testOne() { // create a couple of events final Event event1 = getTransactionTemplate().execute(new TransactionCallback<Event>() { @Override/* w ww. j a v a 2s. c o m*/ public Event doInTransaction(TransactionStatus status) { // revision 1 Event event = new Event("Our very first event!", new Date()); getEntityManager().persist(event); return event; } }); final Event event2 = getTransactionTemplate().execute(new TransactionCallback<Event>() { @Override public Event doInTransaction(TransactionStatus status) { // revision 2 Event event = new Event("A follow up event", new Date()); getEntityManager().persist(event); return event; } }); // now lets pull events from the database and list them List<Event> result = getTransactionTemplate().execute(new TransactionCallback<List<Event>>() { @Override public List<Event> doInTransaction(TransactionStatus status) { List<Event> result = getEntityManager().createQuery("select evt from Event evt", Event.class) .getResultList(); for (Event event : result) { System.out.println("Event (" + event.getDate() + ") : " + event.getTitle()); } return result; } }); // verify that id's were generated final Long event1Id = event1.getId(); final Long event2Id = event2.getId(); assertThat(event1Id, notNullValue()); assertThat(event2Id, notNullValue()); // so far the code is the same as we have seen in previous tutorials. Now lets leverage Envers... // first lets create some revisions getTransactionTemplate().execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { // revision 3 Event myEvent = getEntityManager().find(Event.class, event2Id); myEvent.setDate(new Date()); myEvent.setTitle(myEvent.getTitle() + " (rescheduled)"); } }); // and then use an AuditReader to look back through history getTransactionTemplate().execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { Event myEvent = getEntityManager().find(Event.class, event2Id); assertThat("A follow up event (rescheduled)", is(myEvent.getTitle())); AuditReader reader = AuditReaderFactory.get(getEntityManager()); List<? extends Number> event2Revisions = reader.getRevisions(Event.class, event2Id); assertThat(event2Revisions.size(), is(2)); long event2Revision1 = event2Revisions.get(0).longValue(); long event2Revision2 = event2Revisions.get(1).longValue(); assertThat(event2Revision1, is(2L)); assertThat(event2Revision2, is(3L)); Event firstRevision = reader.find(Event.class, event2Id, event2Revision1); assertThat(firstRevision, notNullValue()); assertThat(firstRevision.getTitle(), notNullValue()); assertThat(firstRevision.getTitle(), not(is(myEvent.getTitle()))); assertThat(firstRevision.getDate(), not(is(myEvent.getDate()))); Event secondRevision = reader.find(Event.class, event2Id, event2Revision2); assertThat(secondRevision, notNullValue()); assertThat(secondRevision.getTitle(), notNullValue()); assertThat(secondRevision.getTitle(), is(myEvent.getTitle())); assertThat(secondRevision.getDate(), is(myEvent.getDate())); } }); }
From source file:com.samtech.hibernate3.impl.AbstractEntityService.java
@SuppressWarnings("unchecked") protected <T> T merge(final T entity) { return (T) transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { T merged = jpaTemplate.merge(entity); jpaTemplate.flush();//from w w w .j a v a 2 s .co m return merged; } }); }