Example usage for org.springframework.transaction.support DefaultTransactionDefinition setReadOnly

List of usage examples for org.springframework.transaction.support DefaultTransactionDefinition setReadOnly

Introduction

In this page you can find the example usage for org.springframework.transaction.support DefaultTransactionDefinition setReadOnly.

Prototype

public final void setReadOnly(boolean readOnly) 

Source Link

Document

Set whether to optimize as read-only transaction.

Usage

From source file:jp.terasoluna.fw.batch.util.BatchUtil.java

/**
 * ?TransactionDefinition??//from   www  . j a va  2  s .  c om
 * @param propagationBehavior ??(@see TransactionDefinition) TransactionDefinition.PROPAGATION_REQUIRED
 * @param isolationLevel (@see TransactionDefinition) TransactionDefinition.ISOLATION_DEFAULT
 * @param timeout () TransactionDefinition.TIMEOUT_DEFAULT (??)
 * @param readOnly  false
 * @return 
 */
public static TransactionDefinition getTransactionDefinition(int propagationBehavior, int isolationLevel,
        int timeout, boolean readOnly) {
    DefaultTransactionDefinition td = new DefaultTransactionDefinition();
    td.setPropagationBehavior(propagationBehavior);
    td.setIsolationLevel(isolationLevel);
    td.setTimeout(timeout);
    td.setReadOnly(readOnly);
    return td;
}

From source file:cherry.sqlapp.service.sqltool.exec.ExecQueryServiceImpl.java

@Override
public PageSet query(String databaseName, final String sql, final Map<String, ?> paramMap,
        final Consumer consumer) {

    final DataSource dataSource = dataSourceDef.getDataSource(databaseName);
    PlatformTransactionManager txMgr = new DataSourceTransactionManager(dataSource);
    DefaultTransactionDefinition txDef = new DefaultTransactionDefinition();
    txDef.setReadOnly(true);

    TransactionOperations txOp = new TransactionTemplate(txMgr, txDef);
    return txOp.execute(new TransactionCallback<PageSet>() {
        @Override/*w  ww .  j a  va 2s  . c o m*/
        public PageSet doInTransaction(TransactionStatus status) {
            try {

                long numOfItems = extractor.extract(dataSource, sql, paramMap, consumer, new NoneLimiter());
                PageSet pageSet = paginator.paginate(0L, numOfItems, (numOfItems <= 0L ? 1L : numOfItems));

                return pageSet;
            } catch (IOException ex) {
                throw new IllegalStateException(ex);
            }
        }
    });
}

From source file:cherry.sqlapp.service.sqltool.exec.ExecQueryServiceImpl.java

@Override
public PageSet query(String databaseName, final QueryBuilder queryBuilder, final Map<String, ?> paramMap,
        final long pageNo, final long pageSz, final Consumer consumer) {

    final DataSource dataSource = dataSourceDef.getDataSource(databaseName);
    PlatformTransactionManager txMgr = new DataSourceTransactionManager(dataSource);
    DefaultTransactionDefinition txDef = new DefaultTransactionDefinition();
    txDef.setReadOnly(true);

    TransactionOperations txOp = new TransactionTemplate(txMgr, txDef);
    return txOp.execute(new TransactionCallback<PageSet>() {
        @Override/*from w  w w .  j a v  a 2s  . co m*/
        public PageSet doInTransaction(TransactionStatus status) {
            try {

                long count = count(dataSource, queryBuilder.buildCount(), paramMap);
                PageSet pageSet = paginator.paginate(pageNo, count, pageSz);

                long numOfItems = extractor.extract(dataSource,
                        queryBuilder.build(pageSz, pageSet.getCurrent().getFrom()), paramMap, consumer,
                        new NoneLimiter());
                if (numOfItems != pageSet.getCurrent().getCount()) {
                    throw new IllegalStateException();
                }

                return pageSet;
            } catch (IOException ex) {
                throw new IllegalStateException(ex);
            }
        }
    });
}

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

@Override
public void doInitialize(TransactionMetadata transactionMetadata) {
    try {//  ww  w .j a va2s  .  co 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:edu.illinois.ncsa.springdata.Transaction.java

/**
 * Start a new transaction. This will use the readonly flag as a hint for
 * the transaction manager../*from   w w  w.ja  v a  2s.  c om*/
 * 
 * @param readonly
 *            a hint for the transaction manager that the transaction should
 *            be used for readonly operations only.
 * @throws Exception
 *             throws an exception if there was a problem creating the
 *             transaction or another transaction is already in use.
 */
public void start(boolean readonly) throws Exception {
    if (status != null) {
        throw (new Exception("Already have transaction open."));
    }
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setReadOnly(readonly);
    status = transactionManager.getTransaction(def);

    Map<Transaction, Exception> localtrans = transactions.get(Thread.currentThread());
    if (localtrans == null) {
        localtrans = new HashMap<Transaction, Exception>();
        transactions.put(Thread.currentThread(), localtrans);
    } else {
        if (localtrans.size() > 0) {
            logger.info(getThreadTransaction());
        }
    }
    localtrans.put(this, new Exception());
}

From source file:es.urjc.mctwp.service.ServiceDelegate.java

private TransactionStatus getTxStatus(String action, boolean readOnly, String isolation, String propagation) {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();

    def.setName(action);/*ww w. ja  v a 2  s . co m*/

    //Set readOnly configuration
    def.setReadOnly(readOnly);

    //Set isolation configuration
    if (isolation.equals(Command.ISOLATION_DEFAULT)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_DEFAULT);
    }

    //Set propagation configuration
    if (propagation.equals(Command.PROPAGATION_REQUIRED)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED);
    }

    return txManager.getTransaction(def);
}

From source file:es.us.isa.ideas.app.controllers.AbstractController.java

protected void beginTransaction(boolean readOnly) {
    Assert.isNull(txStatus);/*w w  w  .j  av  a2 s . co m*/

    DefaultTransactionDefinition definition;

    definition = new DefaultTransactionDefinition();
    definition.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_DEFAULT);
    definition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
    definition.setReadOnly(readOnly);
    txStatus = transactionManager.getTransaction(definition);
}

From source file:org.malaguna.cmdit.service.ServiceDelegate.java

private TransactionStatus getTxStatus(String action, boolean readOnly, String isolation, String propagation) {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();

    def.setName(action);/*w ww .  j a  v a  2  s  .  c  o  m*/

    //Set readOnly configuration
    def.setReadOnly(readOnly);

    //Set isolation configuration
    if (isolation.equals(Command.ISOLATION_DEFAULT)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_DEFAULT);
    } else if (isolation.equals(Command.ISOLATION_READ_COMMITED)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_READ_COMMITTED);
    } else if (isolation.equals(Command.ISOLATION_READ_UNCOMMITED)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    } else if (isolation.equals(Command.ISOLATION_REPEATABLE_READ)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_REPEATABLE_READ);
    } else if (isolation.equals(Command.ISOLATION_SERIALIZABLE)) {
        def.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_SERIALIZABLE);
    }

    //Set propagation configuration
    if (propagation.equals(Command.PROPAGATION_REQUIRED)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED);
    } else if (propagation.equals(Command.PROPAGATION_MANDATORY)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_MANDATORY);
    } else if (propagation.equals(Command.PROPAGATION_NESTED)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_NESTED);
    } else if (propagation.equals(Command.PROPAGATION_NEVER)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_NEVER);
    } else if (propagation.equals(Command.PROPAGATION_NOT_SUPPORTED)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_NOT_SUPPORTED);
    } else if (propagation.equals(Command.PROPAGATION_REQUIRES_NEW)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
    } else if (propagation.equals(Command.PROPAGATION_SUPPORTS)) {
        def.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_SUPPORTS);
    }

    return txManager.getTransaction(def);
}

From source file:nz.co.senanque.functions.CustomerDAOImpl.java

@SuppressWarnings({ "unused", "unchecked" })
public void transactionTester() {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    // explicitly setting the transaction name is something that can only be done programmatically
    def.setName("SomeTxName");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setReadOnly(true);

    final TransactionStatus status = m_txManager.getTransaction(def);
    Session session = getSessionFactory().getCurrentSession();
    final Transaction transaction = session.getTransaction();
    Query query = session.createQuery("select p from nz.co.senanque.madura.sandbox.Customer p");
    List<Customer> customers = query.list();
    for (Customer customer : customers) {
        final Session session1 = getSessionFactory().openSession();
        final Session currentSession = getSessionFactory().getCurrentSession();
        final Transaction transaction1 = currentSession.getTransaction();
        getSubTransaction().process(customer);
    }/*from w  w  w. j  ava 2s . com*/

}

From source file:nz.co.senanque.base.CustomerDAOImpl.java

@SuppressWarnings("unused")
public void transactionTester() {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    // explicitly setting the transaction name is something that can only be done programmatically
    def.setName("SomeTxName");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setReadOnly(true);

    final TransactionStatus status = m_txManager.getTransaction(def);
    Session session = getSessionFactory().getCurrentSession();
    final Transaction transaction = session.getTransaction();
    Query query = session.createQuery("select p from nz.co.senanque.madura.sandbox.Customer p");
    @SuppressWarnings("unchecked")
    List<Customer> customers = query.list();
    for (Customer customer : customers) {
        final Session session1 = getSessionFactory().openSession();
        final Session currentSession = getSessionFactory().getCurrentSession();
        final Transaction transaction1 = currentSession.getTransaction();
        getSubTransaction().process(customer);
    }/*from  w ww . ja va 2 s.  co  m*/

}