Example usage for org.springframework.transaction.support TransactionTemplate setPropagationBehavior

List of usage examples for org.springframework.transaction.support TransactionTemplate setPropagationBehavior

Introduction

In this page you can find the example usage for org.springframework.transaction.support TransactionTemplate setPropagationBehavior.

Prototype

public final void setPropagationBehavior(int propagationBehavior) 

Source Link

Document

Set the propagation behavior.

Usage

From source file:org.pentaho.pac.server.common.DAOFactory.java

public static IUserRoleDao getUserRoleDAO() {
    SessionFactory sessionFactory = HibernateSessionFactory.getSessionFactory(DEFAULT_CONFIG_NAME);
    HibernateUserRoleDao userRoleDao = new HibernateUserRoleDao();
    userRoleDao.setSessionFactory(sessionFactory);

    UserRoleDaoTransactionDecorator txnDao = new UserRoleDaoTransactionDecorator();
    txnDao.setUserRoleDao(userRoleDao);//from  ww w . j a  v  a2s .c o m
    TransactionTemplate txnTemplate = new TransactionTemplate();
    txnTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    txnTemplate.setTransactionManager(new HibernateTransactionManager(sessionFactory));
    txnDao.setTransactionTemplate(txnTemplate);

    SampleUsersAndRolesInitHandler initHandler = new SampleUsersAndRolesInitHandler();
    initHandler.setSessionFactory(sessionFactory);
    initHandler.setUserRoleDao(txnDao);

    userRoleDao.setInitHandler(initHandler);
    try {
        userRoleDao.init();
    } catch (Exception e) {
        logger.warn(Messages.getString("DAOFactory.WARN_0001_UNABLE_TO_INITIALIZE_USER_ROLE_DAO"), e); //$NON-NLS-1$
    }

    return txnDao;
}

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./*from w w w  .j a  v a  2  s  .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:com.example.switchyard.idempotent.jpa.IdempotentJpaConsumer.java

private static TransactionTemplate transactionTemplate() {
    TransactionTemplate transactionTemplate = new TransactionTemplate();
    transactionTemplate.setTransactionManager(new JtaTransactionManager(getTransactionManager()));

    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

    return transactionTemplate;
}

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);
        }//from  ww w  . j ava  2  s.  c  om
    });
    return result;
}

From source file:dk.nsi.sdm4.ydelse.config.YdelseimporterApplicationConfig.java

@Bean
public TransactionTemplate templateForNewTransactions(PlatformTransactionManager transactionManager) {
    TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    return transactionTemplate;
}

From source file:fr.mycellar.interfaces.facades.stack.StackServiceFacadeImpl.java

@Override
public synchronized void onThrowable(final Throwable throwable) {
    // The transaction must be inside the lock. So we must use a transaction
    // template and not the Transactional annotation.
    TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    transactionTemplate.setReadOnly(false);
    transactionTemplate.execute(new TransactionCallback<Object>() {
        @Override//from   w w w .  ja  va  2s. c  om
        public Object doInTransaction(TransactionStatus status) {
            stackService.onThrowable(throwable);
            return null;
        }
    });
}

From source file:net.cpollet.jixture.tests.integration.hibernate3.BaseTestDatabaseTestSupport.java

private void executeInNewTransaction(TransactionCallback transactionCallback) {
    TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    transactionTemplate.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);

    transactionTemplate.execute(transactionCallback);
}

From source file:org.opennms.ng.dao.support.UpsertTemplate.java

/**
 * After creating the UpsertTemplate call this method to attempt the upsert.
 *//* w  ww  .j av  a2 s  .  c  o  m*/
public T execute() {
    TransactionTemplate template = new TransactionTemplate(m_transactionManager);
    template.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    return template.execute(new TransactionCallback<T>() {

        @Override
        public T doInTransaction(TransactionStatus status) {
            return doUpsert();
        }
    });

}

From source file:org.wallride.service.TagService.java

@Transactional(propagation = Propagation.NOT_SUPPORTED)
@CacheEvict(value = { WallRideCacheConfiguration.ARTICLE_CACHE,
        WallRideCacheConfiguration.PAGE_CACHE }, allEntries = true)
public List<Tag> bulkDeleteTag(TagBulkDeleteRequest bulkDeleteRequest, final BindingResult result) {
    List<Tag> tags = new ArrayList<>();
    for (long id : bulkDeleteRequest.getIds()) {
        final TagDeleteRequest deleteRequest = new TagDeleteRequest.Builder().id(id)
                .language(bulkDeleteRequest.getLanguage()).build();

        final BeanPropertyBindingResult r = new BeanPropertyBindingResult(deleteRequest, "request");
        r.setMessageCodesResolver(messageCodesResolver);

        TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
        transactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);
        Tag tag = null;/*from  www  .  j ava 2s .  c o m*/
        try {
            tag = transactionTemplate.execute(new TransactionCallback<Tag>() {
                public Tag doInTransaction(TransactionStatus status) {
                    return deleteTag(deleteRequest, result);
                }
            });
            tags.add(tag);
        } catch (Exception e) {
            logger.debug("Errors: {}", r);
            result.addAllErrors(r);
        }
    }
    return tags;
}

From source file:org.zlogic.vogon.web.security.UserService.java

/**
 * Returns true if the username is already in use
 *
 * @param username the username to check
 * @return true if the username is already in use
 *//*from   w  w w  .j  av  a2 s .  c  o m*/
private boolean isUsernameExists(final String username) {
    TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setReadOnly(true);
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    return transactionTemplate.execute(new TransactionCallback<Boolean>() {

        @Override
        public Boolean doInTransaction(TransactionStatus ts) {
            return userRepository.findByUsernameIgnoreCase(username) != null;
        }
    });
}