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

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

Introduction

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

Prototype

public final void setPropagationBehavior(int propagationBehavior) 

Source Link

Document

Set the propagation behavior.

Usage

From source file:org.skife.jdbi.spring.TestSpringIntegration.java

public void testDBIUtilsSameHandleInTx() throws Exception {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    final PlatformTransactionManager ptm = (PlatformTransactionManager) ctx.getBean("transactionManager");
    final TransactionStatus status = ptm.getTransaction(def);

    final IDBI dbi = (IDBI) ctx.getBean("dbi");

    Handle one = DBIUtils.getHandle(dbi);
    Handle two = DBIUtils.getHandle(dbi);

    assertSame(one, two);/*from ww w . j  a va  2  s  . c  o m*/

    ptm.commit(status);
}

From source file:org.skife.jdbi.spring.TestSpringIntegration.java

public void testSuspendAndResumeTx() throws Exception {
    final DefaultTransactionDefinition prop_req = new DefaultTransactionDefinition();
    prop_req.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    final PlatformTransactionManager ptm = (PlatformTransactionManager) ctx.getBean("transactionManager");
    final TransactionStatus prop_req_status = ptm.getTransaction(prop_req);

    final IDBI dbi = (IDBI) ctx.getBean("dbi");

    final Handle one = DBIUtils.getHandle(dbi);

    final DefaultTransactionDefinition req_new = new DefaultTransactionDefinition();
    req_new.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);

    // REQUIRES_NEW inside PROPAGATION_REQUIRED
    final TransactionStatus req_new_status = ptm.getTransaction(req_new);

    final Handle two = DBIUtils.getHandle(dbi);
    assertNotSame(one, two);//from ww w . ja  v  a 2  s .  c  o  m

    ptm.commit(req_new_status);
    ptm.commit(prop_req_status);
}

From source file:org.skife.jdbi.spring.TestSpringIntegration.java

public void testCloseIfNecessaryNotNecesarry() throws Exception {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    final PlatformTransactionManager ptm = (PlatformTransactionManager) ctx.getBean("transactionManager");
    final TransactionStatus status = ptm.getTransaction(def);

    final IDBI dbi = (IDBI) ctx.getBean("dbi");

    Handle one = DBIUtils.getHandle(dbi);

    DBIUtils.closeHandleIfNecessary(one, dbi);
    assertTrue(one.isOpen());/*  w  ww . j  av  a  2s  . c  o m*/

    ptm.commit(status);
    assertFalse(one.isOpen());
}

From source file:org.skife.jdbi.spring.TestSpringIntegration.java

public void testHandleCallbackUsesTxHandle() throws Exception {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    final PlatformTransactionManager ptm = (PlatformTransactionManager) ctx.getBean("transactionManager");
    final TransactionStatus status = ptm.getTransaction(def);

    final IDBI dbi = (IDBI) ctx.getBean("dbi");

    final Handle outer = DBIUtils.getHandle(dbi);

    dbi.open(new HandleCallback() {
        public void withHandle(Handle handle) throws Exception {
            assertSame(outer, handle);/*from   w w w  . j a  v  a  2 s .com*/
        }
    });

    ptm.commit(status);
}

From source file:org.skife.jdbi.spring.TestSpringIntegration.java

public void testExceptionInHandleCallbackRollsbackTx() throws Exception {
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    final PlatformTransactionManager ptm = (PlatformTransactionManager) ctx.getBean("transactionManager");
    final TransactionStatus status = ptm.getTransaction(def);

    final IDBI dbi = (IDBI) ctx.getBean("dbi");

    try {/*from w w w. j ava2s  . c  o  m*/
        dbi.open(new HandleCallback() {
            public void withHandle(Handle handle) throws Exception {
                throw new UnsupportedOperationException("Not yet implemented!");
            }
        });
        fail("Should have thrown exception");
    } catch (DBIException e) {
        assertTrue(true);
    }

    ptm.rollback(status);
}