List of usage examples for org.springframework.transaction.support TransactionCallback TransactionCallback
TransactionCallback
From source file:org.ensembl.gti.seqstore.database.JdbcSeqStore.java
@Override public void clearGenome(long genomeId) { log.debug("Clearing all entries for genome " + genomeId); transactionTemplate.execute(new TransactionCallback<Void>() { @Override//from www .j a v a 2 s.co m public Void doInTransaction(TransactionStatus status) { for (String obj : new String[] { "translation", "exon", "transcript", "gene", "genome_sequence", "genome" }) { String sql = CLEAR_GENOME_OBJ.replaceAll("OBJ", obj); template.update(sql, genomeId); } return null; } }); }
From source file:org.openvpms.component.business.service.archetype.ArchetypeServiceDescriptorTestCase.java
/** * Verifies that an archetype descriptor can be replaced with one of * the same name in a transaction.//from w ww . ja v a 2s .c o m */ @Test public void testReplace() { String name = "archetype.dummy" + System.currentTimeMillis() + ".1.0"; final ArchetypeDescriptor desc1 = createArchetypeDescriptor(name, getClass().getName(), "archetype.dummy", true); NodeDescriptor ndesc1 = createNodeDescriptor("name", "/name", "java.lang.String", 1, 1); desc1.addNodeDescriptor(ndesc1); save(desc1); final ArchetypeDescriptor desc2 = createArchetypeDescriptor(name, getClass().getName(), "archetype.dummy", true); NodeDescriptor ndesc2 = createNodeDescriptor("name2", "/name", "java.lang.String", 1, 1); // try and save desc2. Should fail. try { save(desc2); fail("Expected save with non-unique name to fail"); } catch (Exception expected) { } desc2.addNodeDescriptor(ndesc2); // now remove desc1, and save desc2 in a transaction PlatformTransactionManager txnManager = (PlatformTransactionManager) applicationContext .getBean("txnManager"); TransactionTemplate template = new TransactionTemplate(txnManager); template.execute(new TransactionCallback<Object>() { public Object doInTransaction(TransactionStatus status) { remove(desc1); save(desc2); return null; } }); // verify the original descriptor can't be retrieved assertNull(get(desc1)); ArchetypeDescriptor reloaded = get(desc2); assertNotNull(reloaded.getNodeDescriptor("name2")); }
From source file:com.vladmihalcea.HibernateCriteriaTest.java
private List<ImageProductDTO> getImageProductDTOs_JOOQ() { return transactionTemplate.execute(new TransactionCallback<List<ImageProductDTO>>() { @Override/*w ww.jav a 2s. c om*/ public List<ImageProductDTO> doInTransaction(TransactionStatus transactionStatus) { return jooqContext.select(IMAGE.NAME, PRODUCT.NAME).from(IMAGE).join(PRODUCT) .on(IMAGE.PRODUCT_ID.equal(PRODUCT.ID)).where(PRODUCT.NAME.likeIgnoreCase("%tv%")) .and(IMAGE.INDEX.greaterThan(0)).orderBy(IMAGE.NAME.asc()).fetch() .into(ImageProductDTO.class); } }); }
From source file:org.wallride.service.UserService.java
@CacheEvict(value = WallRideCacheConfiguration.USER_CACHE, allEntries = true) @Transactional(propagation = Propagation.NOT_SUPPORTED) public List<User> bulkDeleteUser(UserBulkDeleteRequest bulkDeleteForm, BindingResult result) { List<User> users = new ArrayList<>(); for (long id : bulkDeleteForm.getIds()) { final UserDeleteRequest deleteRequest = new UserDeleteRequest.Builder().id(id).build(); final BeanPropertyBindingResult r = new BeanPropertyBindingResult(deleteRequest, "request"); r.setMessageCodesResolver(messageCodesResolver); TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); transactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW); User user = null;//from ww w . jav a 2s . c om try { user = transactionTemplate.execute(new TransactionCallback<User>() { public User doInTransaction(TransactionStatus status) { try { return deleteUser(deleteRequest, r); } catch (BindException e) { throw new RuntimeException(e); } } }); users.add(user); } catch (Exception e) { logger.debug("Errors: {}", r); result.addAllErrors(r); } } return users; }
From source file:dao.FlowsDAO.java
public static ObjectNode getPagedProjectsByApplication(String applicationName, int page, int size) { String application = applicationName.replace(".", " "); ObjectNode result = Json.newObject(); javax.sql.DataSource ds = getJdbcTemplate().getDataSource(); DataSourceTransactionManager tm = new DataSourceTransactionManager(ds); TransactionTemplate txTemplate = new TransactionTemplate(tm); Integer appID = getApplicationIDByName(applicationName); if (appID != 0) { final int applicationID = appID; result = txTemplate.execute(new TransactionCallback<ObjectNode>() { public ObjectNode doInTransaction(TransactionStatus status) { ObjectNode resultNode = Json.newObject(); long count = 0; List<Flow> pagedFlows = new ArrayList<Flow>(); List<Map<String, Object>> rows = null; rows = getJdbcTemplate().queryForList(GET_PAGED_FLOWS_BY_APP_ID, applicationID, (page - 1) * size, size); try { count = getJdbcTemplate().queryForObject("SELECT FOUND_ROWS()", Long.class); } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); }/*from w ww . ja v a 2 s. c om*/ for (Map row : rows) { Flow flow = new Flow(); flow.id = (Long) row.get("flow_id"); flow.level = (Integer) row.get("flow_level"); flow.appId = (Integer) row.get("app_id"); flow.group = (String) row.get("flow_group"); flow.name = (String) row.get("flow_name"); flow.path = (String) row.get("flow_path"); flow.appCode = (String) row.get("app_code"); if (StringUtils.isNotBlank(flow.path)) { int index = flow.path.indexOf(":"); if (index != -1) { flow.path = flow.path.substring(0, index); } } Object created = row.get("created_time"); if (created != null) { flow.created = DateFormat.format(created.toString()); } Object modified = row.get("modified_time"); if (modified != null) { flow.modified = DateFormat.format(row.get("modified_time").toString()); } int jobCount = 0; if (flow.id != null && flow.id != 0) { try { jobCount = getJdbcTemplate().queryForObject(GET_JOB_COUNT_BY_APP_ID_AND_FLOW_ID, new Object[] { flow.appId, flow.id }, Integer.class); flow.jobCount = jobCount; } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); } } pagedFlows.add(flow); } resultNode.set("flows", Json.toJson(pagedFlows)); resultNode.put("count", count); resultNode.put("page", page); resultNode.put("itemsPerPage", size); resultNode.put("totalPages", (int) Math.ceil(count / ((double) size))); return resultNode; } }); return result; } result = Json.newObject(); result.put("count", 0); result.put("page", page); result.put("itemsPerPage", size); result.put("totalPages", 0); result.set("flows", Json.toJson("")); return result; }
From source file:ro.nextreports.server.web.NextServerApplication.java
private SchedulerJob[] getSchedulerJobs() { PlatformTransactionManager transactionManager = (PlatformTransactionManager) getSpringBean( "transactionManager"); TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); SchedulerJob[] schedulerJobs = transactionTemplate.execute(new TransactionCallback<SchedulerJob[]>() { public SchedulerJob[] doInTransaction(TransactionStatus transactionStatus) { StorageDao storageDao = (StorageDao) getSpringBean("storageDao"); try { Entity[] entities = storageDao.getEntitiesByClassName(StorageConstants.SCHEDULER_ROOT, SchedulerJob.class.getName()); SchedulerJob[] schedulerJobs = new SchedulerJob[entities.length]; System.arraycopy(entities, 0, schedulerJobs, 0, entities.length); return schedulerJobs; } catch (Exception e) { // TODO e.printStackTrace();/*w w w. j a v a2 s . c o m*/ transactionStatus.setRollbackOnly(); return null; } } }); return schedulerJobs; }
From source file:org.openvpms.archetype.rules.finance.invoice.ChargeItemDocumentLinkerTestCase.java
/** * Saves the changes in a transaction.//from ww w . ja v a 2s . co m * * @param changes the changes */ private void saveInTxn(final PatientHistoryChanges changes) { PlatformTransactionManager mgr = (PlatformTransactionManager) applicationContext.getBean("txnManager"); TransactionTemplate template = new TransactionTemplate(mgr); template.execute(new TransactionCallback<Object>() { public Object doInTransaction(TransactionStatus status) { changes.save(); return null; } }); }
From source file:com.hs.mail.imap.mailbox.DefaultMailboxManager.java
private long appendMessage(final long mailboxID, final MailMessage message) { return (Long) getTransactionTemplate().execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { try { MessageDao dao = DaoFactory.getMessageDao(); dao.addMessage(mailboxID, message, message.getFlags()); eventDispatcher.added(mailboxID); return message.getPhysMessageID(); } catch (DataAccessException ex) { status.setRollbackOnly(); throw ex; }/*w w w. j a v a 2s. com*/ } }); }
From source file:com.github.rholder.spring.transaction.TransactionBindingSupportTest.java
@Test public void testResourceHelperMap() throws Exception { // run this in a transaction transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { Map<String, String> map = TransactionalResourceHelper.getMap("abc"); Assert.assertNotNull("Map not created", map); map.put("1", "ONE"); Map<String, String> mapCheck = TransactionalResourceHelper.getMap("abc"); Assert.assertTrue("Same map not retrieved", map == mapCheck); return null; }/*from w w w . j av a 2 s.c o m*/ }); }
From source file:com.exxonmobile.ace.hybris.test.orders.B2BAcceleratorTestOrderData.java
protected String placeOrderAndApproveByB2BApprover(final String userID, final String purchaseOrderNumber) { LOG.debug(String.format(/*from www .j av a 2s. c o m*/ "******************Starting Attempt to setup and create order for PONumber: %s for " + "%s ", purchaseOrderNumber, userID)); final TransactionTemplate template = new TransactionTemplate(getTransactionManager()); template.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED); return template.execute(new TransactionCallback<String>() { @Override public String doInTransaction(final TransactionStatus status) { String orderCode = null; final Map<String, Long> products = new HashMap<String, Long>(); products.put(PRODUCT_C, Long.valueOf(5)); final OrderData orderData = placeOrder(userID, products, createUsAddressData(), purchaseOrderNumber, ExxonmobilTestConstants.STANDARD_COSTCENTER, null); orderCode = orderData == null ? null : orderData.getCode(); if (orderCode != null) { b2bApproverApproveThisOrder(orderCode); } return orderCode; } }); }