Example usage for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRES_NEW

List of usage examples for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRES_NEW

Introduction

In this page you can find the example usage for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRES_NEW.

Prototype

int PROPAGATION_REQUIRES_NEW

To view the source code for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRES_NEW.

Click Source Link

Document

Create a new transaction, suspending the current transaction if one exists.

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 w  ww. j a  va2s .c  om*/
    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:ar.com.zauber.commons.spring.web.handlers.strategy.TransactionStrategyTest.java

/** before */
@Before/*from   www  .  java2  s. c o  m*/
public final void before() {
    defaultTemplate = new TransactionTemplate();
    specialTemplate = new TransactionTemplate();
    specialTemplate.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    specialTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    specialTemplate.setReadOnly(true);
    mockController = new MockController();
    anotherMockController = new AnotherMockController();
}

From source file:org.seedstack.spring.internal.SpringTransactionHandler.java

@Override
public void doInitialize(TransactionMetadata transactionMetadata) {
    try {/* ww  w.  ja  va2 s.  c o  m*/
        transactionManager = injector.getInstance(
                Key.get(AbstractPlatformTransactionManager.class, Names.named(springTransactionManagerBeanId)));
        DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition(
                TransactionDefinition.PROPAGATION_REQUIRES_NEW);
        defaultTransactionDefinition.setReadOnly(transactionMetadata.isReadOnly());
        transactionLink.push(transactionManager.getTransaction(defaultTransactionDefinition));
    } catch (TransactionException e) {
        throw new IllegalStateException(e);
    }
}

From source file:com.company.project.service.dao.UserDao.java

public int insertx(String username, String password) {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionStatus status = txManager.getTransaction(def);
    int result = 0;
    try {/*from w ww . ja  v a 2s  .  co m*/
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        result = jdbcTemplate.update("insert into users (username, password) values (?, ?)", username,
                password);
        txManager.commit(status); // will not insert if this line is removed
    } catch (Exception e) {
        e.printStackTrace();
        txManager.rollback(status);
    }

    return result;
}

From source file:com.alibaba.otter.canal.example.db.dialect.AbstractDbDialect.java

public AbstractDbDialect(final JdbcTemplate jdbcTemplate, LobHandler lobHandler) {
    this.jdbcTemplate = jdbcTemplate;
    this.lobHandler = lobHandler;
    // ?transction
    this.transactionTemplate = new TransactionTemplate();
    transactionTemplate.setTransactionManager(new DataSourceTransactionManager(jdbcTemplate.getDataSource()));
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);

    // ??//  w w w  .  j  a  va 2  s . c om
    jdbcTemplate.execute(new ConnectionCallback() {

        public Object doInConnection(Connection c) throws SQLException, DataAccessException {
            DatabaseMetaData meta = c.getMetaData();
            databaseName = meta.getDatabaseProductName();
            databaseMajorVersion = meta.getDatabaseMajorVersion();
            databaseMinorVersion = meta.getDatabaseMinorVersion();

            return null;
        }
    });

    initTables(jdbcTemplate);
}

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:com.company.project.service.UserService.java

public boolean insertx(Map user) {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionStatus status = txManager.getTransaction(def);

    int result = 0;
    try {//from ww w .  ja  v a  2  s  .  c om
        result = userMapper.insert(user);
        txManager.commit(status); // will not insert if this line is removed
    } catch (Exception e) {
        e.printStackTrace();
        //session.rollback();
        txManager.rollback(status);
    } finally {
    }

    return result == 1;
}

From source file:org.ohdsi.webapi.test.feasibility.StudyInfoTest.java

@Test
@Transactional/*from  ww  w .  ja  v  a 2s .  c  o m*/
public void testStudyCRUD() {

    DefaultTransactionDefinition requiresNewTx = new DefaultTransactionDefinition();
    requiresNewTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);

    Source source = sourceRepository.findOne(1);

    TransactionStatus saveTx = this.transactionTemplate.getTransactionManager().getTransaction(requiresNewTx);
    FeasibilityStudy newStudy = new FeasibilityStudy();
    newStudy.setName("Test Info Study");
    newStudy = this.studyRepository.save(newStudy);
    StudyGenerationInfo info = new StudyGenerationInfo(newStudy, source); // for testing, assume a sourceId of 1 exists.
    info.setStatus(GenerationStatus.PENDING);
    newStudy.getStudyGenerationInfoList().add(info);
    this.studyRepository.save(newStudy);
    this.transactionTemplate.getTransactionManager().commit(saveTx);

    TransactionStatus updateTx = this.transactionTemplate.getTransactionManager().getTransaction(requiresNewTx);
    newStudy.getStudyGenerationInfoList().clear();
    this.studyRepository.save(newStudy);
    this.transactionTemplate.getTransactionManager().commit(updateTx);

}

From source file:com.example.test.HibernateBookRepositoryTest.java

@Before
public void setUp() {
    transactionTemplate = new TransactionTemplate(transactionManager);
    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
}

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 ww  .  ja  v a  2 s  . c om*/
        public Object doInTransaction(TransactionStatus status) {
            stackService.onThrowable(throwable);
            return null;
        }
    });
}