List of usage examples for org.springframework.transaction.support TransactionCallback TransactionCallback
TransactionCallback
From source file:com.vladmihalcea.HibernateCascadeLockComponentTest.java
protected Long cleanAndSaveParent() { return transactionTemplate.execute(new TransactionCallback<Long>() { @Override/*from w ww. j av a 2s. c om*/ public Long doInTransaction(TransactionStatus transactionStatus) { entityManager.createQuery("delete from Post where id > 0").executeUpdate(); assertTrue(entityManager.createQuery("from Post").getResultList().isEmpty()); Post post = new Post(); entityManager.persist(post); entityManager.flush(); return post.getId(); } }); }
From source file:org.fireflow.BaseEnviroment4Junit.java
/** * ?/*w w w. j a v a 2 s. c o m*/ */ @BeforeClass public static void beforeClass() { resource = new ClassPathResource(springConfig); beanFactory = new XmlBeanFactory(resource); runtimeContext = (RuntimeContext) beanFactory.getBean("runtimeContext"); transactionTemplate = (TransactionTemplate) beanFactory.getBean("springTransactionTemplate"); final JunitInitializer initializer = (JunitInitializer) beanFactory.getBean("junitInitializer"); // ? transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus arg0) { initializer.clearData(); return null; } }); final WorkflowSession session = WorkflowSessionFactory.createWorkflowSession(runtimeContext, FireWorkflowSystem.getInstance()); final WorkflowStatement stmt = session.createWorkflowStatement(PROCESS_TYPE); // ??? transactionTemplate.execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus arg0) { try { InputStream in = BaseEnviroment4Junit.class.getClassLoader() .getResourceAsStream("FireWorkflow-Default-Resources.rsc.xml"); Map<ResourceDescriptorProperty, Object> props = new HashMap<ResourceDescriptorProperty, Object>(); props.put(ResourceDescriptorProperty.FILE_NAME, "FireWorkflow-Default-Resources.rsc.xml"); stmt.uploadResources(in, props); } catch (Exception e) { e.printStackTrace(); } return null; } }); }
From source file:org.codehaus.grepo.procedure.repository.GenericProcedureRepositoryImpl.java
/** * Execute the procedure./* ww w . j a v a2s. c om*/ * * @param pmpi The method parameter info. * @param genericProcedure The annotation. * @return Returns the result map of the procedure call. */ protected Map<String, Object> executeProcedure(final ProcedureMethodParameterInfo pmpi, GenericProcedure genericProcedure) { TransactionCallback<Object> callback = new TransactionCallback<Object>() { public Object doInTransaction(final TransactionStatus status) { ProcedureExecutionContext context = createProcedureExecutionContext(); StoredProcedure sp = prepareProcedure(pmpi, context); Map<String, Object> input = generateInputMap(pmpi, context); if (logger.isDebugEnabled()) { logger.debug("About to execute procedure: {}", sp.getSql()); logger.debug("Using input map: {}", input); } Object result = sp.execute(input); logger.debug("Procedure result is '{}'", result); return result; } }; return executeCallback(callback, genericProcedure.isReadOnly()); }
From source file:ch.tatool.app.service.impl.DataServiceImpl.java
/** * Creates a new module session.//from www . j ava 2 s. c o m * The module start date is set immediately */ public ModuleSession createSession(Module module) { final ModuleImpl moduleImpl = (ModuleImpl) module; ModuleSession moduleSession = (ModuleSession) moduleImpl.getTransactionTemplate() .execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { ModuleSession moduleSession = new ModuleSessionImpl(); moduleSession.setStartTime(new Date()); moduleImpl.getSessionDAO().saveSession(moduleImpl, moduleSession); return moduleSession; } }); return moduleSession; }
From source file:com.mothsoft.alexis.service.security.AlexisApiAuthenticationProvider.java
@Override protected UserDetails retrieveUser(final String username, final UsernamePasswordAuthenticationToken token) throws AuthenticationException { return this.transactionTemplate.execute(new TransactionCallback<UserDetails>() { @Override/* www . ja v a 2s . c o m*/ public UserDetails doInTransaction(TransactionStatus arg0) { final String apiToken = String.valueOf(token.getCredentials()); final boolean valid = AlexisApiAuthenticationProvider.this.userDao.authenticate(username, apiToken); if (!valid) { throw new BadCredentialsException(username); } final UserDetails userDetails = AlexisApiAuthenticationProvider.this.userDetailsService .loadUserByUsername(username); final UserDetails toReturn = new UserAuthenticationDetails((UserAuthenticationDetails) userDetails, apiToken); return toReturn; } }); }
From source file:ch.tatool.app.service.impl.ModuleServiceImpl.java
/** * Get a list of all available modules.//from www. j av a 2 s. co m */ @SuppressWarnings("unchecked") public Set<Module.Info> getModules(UserAccount account) { final UserAccountImpl accountImpl = (UserAccountImpl) account; return (Set<Module.Info>) accountImpl.getTransactionTemplate().execute(new TransactionCallback() { public Object doInTransaction(TransactionStatus status) { return accountImpl.getModuleDAO().getModules(accountImpl); } }); }
From source file:org.cleverbus.core.common.asynch.repair.RepairExternalCallDbImpl.java
private List<ExternalCall> findProcessingExternalCalls() { return transactionTemplate.execute(new TransactionCallback<List<ExternalCall>>() { @Override/* w ww .ja va 2 s. c o m*/ @SuppressWarnings("unchecked") public List<ExternalCall> doInTransaction(TransactionStatus status) { return externalCallDao.findProcessingExternalCalls(repeatInterval); } }); }
From source file:com.vladmihalcea.HibernateSQLStatementCountTest.java
@Test public void test() { transactionTemplate.execute(new TransactionCallback<Void>() { @Override/*from w w w .j a v a 2s . c o m*/ public Void doInTransaction(TransactionStatus transactionStatus) { Company company = new Company(); company.setName("TV Company"); entityManager.persist(company); Product product1 = new Product("tvCode"); product1.setName("TV"); product1.setCompany(company); WarehouseProductInfo warehouseProductInfo1 = new WarehouseProductInfo(); warehouseProductInfo1.setQuantity(101); product1.addWarehouse(warehouseProductInfo1); Product product2 = new Product("cdCode"); product2.setName("CD"); product2.setCompany(company); WarehouseProductInfo warehouseProductInfo2 = new WarehouseProductInfo(); warehouseProductInfo2.setQuantity(50); product2.addWarehouse(warehouseProductInfo2); entityManager.persist(product1); entityManager.persist(product2); entityManager.flush(); final JdbcTemplate otherDataSourceJdbcTemplate = new JdbcTemplate(otherDataSource); List<Map<String, Object>> versions = otherDataSourceJdbcTemplate .queryForList(" select * from version "); assertTrue(versions.isEmpty()); return null; } }); try { SQLStatementCountValidator.reset(); warehouseProductInfoService.findAllWithNPlusOne(); SQLStatementCountValidator.assertSelectCount(1); } catch (SQLSelectCountMismatchException e) { assertEquals(3, e.getRecorded()); } SQLStatementCountValidator.reset(); warehouseProductInfoService.findAllWithFetch(); SQLStatementCountValidator.assertSelectCount(1); SQLStatementCountValidator.reset(); warehouseProductInfoService.newWarehouseProductInfo(); SQLStatementCountValidator.assertSelectCount(1); SQLStatementCountValidator.assertInsertCount(2); }
From source file:com.vladmihalcea.service.impl.ProductServiceImpl.java
@Override @Retry(times = 10, on = OptimisticLockException.class) public Product updateName(final Long id, final String name) { return transactionTemplate.execute(new TransactionCallback<Product>() { @Override/*w ww . ja va 2 s . com*/ public Product doInTransaction(TransactionStatus status) { Product product = entityManager.find(Product.class, id); product.setName(name); LOGGER.info("Updating product {} name to {}", product, name); product = entityManager.merge(product); entityManager.flush(); return product; } }); }
From source file:org.web4thejob.orm.MetaReaderServiceImpl.java
@Override @SuppressWarnings("unchecked") public <E extends Entity> E deproxyEntity(E entity) { final E proxy = entity; if (proxy instanceof HibernateProxy) { {/*from w w w . jav a 2 s . co m*/ if (((HibernateProxy) proxy).getHibernateLazyInitializer().isUninitialized()) { final E impl = ContextUtil.getTransactionWrapper().execute(new TransactionCallback<E>() { @Override public E doInTransaction(TransactionStatus status) { final LazyInitializer lazy = ((HibernateProxy) proxy).getHibernateLazyInitializer(); lazy.setSession((SessionImplementor) sessionFactory.getCurrentSession()); lazy.initialize(); final Object impl = lazy.getImplementation(); lazy.unsetSession(); return (E) impl; } }); return impl; } else { return (E) ((HibernateProxy) proxy).getHibernateLazyInitializer().getImplementation(); } } } return entity; }