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: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);//w  w  w  .ja va 2  s .  c om

    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 source file:org.ohdsi.webapi.feasibility.PerformFeasibilityTasklet.java

@Override
public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext)
        throws Exception {
    Date startTime = Calendar.getInstance().getTime();
    Map<String, Object> jobParams = chunkContext.getStepContext().getJobParameters();
    Integer studyId = Integer.valueOf(jobParams.get("study_id").toString());
    Integer sourceId = Integer.valueOf(jobParams.get("source_id").toString());
    boolean isValid = false;

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

    TransactionStatus initStatus = this.transactionTemplate.getTransactionManager()
            .getTransaction(requresNewTx);
    FeasibilityStudy study = this.feasibilityStudyRepository.findOne(studyId);

    CohortDefinition resultDef = study.getResultRule();
    if (resultDef != null) {
        CohortGenerationInfo resultInfo = findCohortGenerationInfoBySourceId(resultDef.getGenerationInfoList(),
                sourceId);//from  w  w  w  .j ava2s . c om
        resultInfo.setIsValid(false).setStatus(GenerationStatus.RUNNING).setStartTime(startTime)
                .setExecutionDuration(null);
    }
    StudyGenerationInfo studyInfo = findStudyGenerationInfoBySourceId(study.getStudyGenerationInfoList(),
            sourceId);
    studyInfo.setIsValid(false);
    studyInfo.setStartTime(startTime);
    studyInfo.setStatus(GenerationStatus.RUNNING);

    this.feasibilityStudyRepository.save(study);
    this.transactionTemplate.getTransactionManager().commit(initStatus);

    try {
        final int[] ret = this.transactionTemplate.execute(new TransactionCallback<int[]>() {

            @Override
            public int[] doInTransaction(final TransactionStatus status) {
                return doTask(chunkContext);
            }
        });
        log.debug("Update count: " + ret.length);
        isValid = true;
    } catch (final TransactionException e) {
        isValid = false;
        log.error(e.getMessage(), e);
        throw e;//FAIL job status
    } finally {
        TransactionStatus completeStatus = this.transactionTemplate.getTransactionManager()
                .getTransaction(requresNewTx);
        Date endTime = Calendar.getInstance().getTime();
        study = this.feasibilityStudyRepository.findOne(studyId);
        resultDef = study.getResultRule();
        if (resultDef != null) {
            CohortGenerationInfo resultInfo = findCohortGenerationInfoBySourceId(
                    resultDef.getGenerationInfoList(), sourceId);
            resultInfo = findCohortGenerationInfoBySourceId(resultDef.getGenerationInfoList(), sourceId);
            resultInfo.setIsValid(isValid);
            resultInfo.setExecutionDuration(new Integer((int) (endTime.getTime() - startTime.getTime())));
            resultInfo.setStatus(GenerationStatus.COMPLETE);
        }

        studyInfo = findStudyGenerationInfoBySourceId(study.getStudyGenerationInfoList(), sourceId);
        studyInfo.setIsValid(isValid);
        studyInfo.setExecutionDuration(new Integer((int) (endTime.getTime() - startTime.getTime())));
        studyInfo.setStatus(GenerationStatus.COMPLETE);

        this.feasibilityStudyRepository.save(study);
        this.transactionTemplate.getTransactionManager().commit(completeStatus);
    }

    return RepeatStatus.FINISHED;
}

From source file:ru.apertum.qsystem.server.model.calendar.CalendarTableModel.java

/**
 *  ./*from w  w w  .  j ava2s. c  o m*/
 */
public void save() {
    QLog.l().logger().info("?  ID = " + calcId);

    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("SomeTxName");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus status = Spring.getInstance().getTxManager().getTransaction(def);
    try {
        final LinkedList<FreeDay> dels = new LinkedList<>();
        for (FreeDay bad : days_del) {
            boolean f = true;
            for (FreeDay good : days) {
                if (good.equals(bad)) {
                    f = false;
                }
            }
            if (f) {
                dels.add(bad);
            }
        }
        Spring.getInstance().getHt().deleteAll(dels);
        Spring.getInstance().getHt().saveOrUpdateAll(days);
    } catch (Exception ex) {
        Spring.getInstance().getTxManager().rollback(status);
        throw new ClientException(
                " ?  ?   (JDBC).\n    ,  , ? ? ? ?,     ?.\n ? (Ctrl + S)    ? ? ? ?.\n\n["
                        + ex.getLocalizedMessage() + "]\n(" + ex.toString() + ")");
    }
    Spring.getInstance().getTxManager().commit(status);
    QLog.l().logger().debug("  ");
    //     
    days_del = new ArrayList<>(days);
}

From source file:org.dbflute.utflute.spring.SpringTestCase.java

protected SpringTransactionResource xregisterTransaction(SpringTransactionResource resource,
        final String managerKey) {
    final PlatformTransactionManager manager = getComponent(managerKey);
    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    final TransactionStatus status = manager.getTransaction(def);
    resource.registerTransaction(manager, status);
    return resource;
}

From source file:org.businessmanager.dao.GenericDaoImpl.java

@Override
public TransactionStatus getTransaction() {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("CustomTransaction");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

    return txManager.getTransaction(def);
}

From source file:com.krawler.spring.organizationChart.organizationChartController.java

public ModelAndView insertNode(HttpServletRequest request, HttpServletResponse response) {
    JSONObject jobj = new JSONObject();
    JSONObject jobj1 = new JSONObject();
    String retMsg = "";
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {/*from   w  ww. j a v a2s .  co  m*/

        String parentid = StringUtil.checkForNull(request.getParameter("fromId"));
        String childid = StringUtil.checkForNull(request.getParameter("userid"));

        HashMap<String, Object> hm = organizationService.insertNode(parentid, childid);

        boolean success = Boolean.parseBoolean(hm.get("success").toString());
        User parent = (User) hm.get("parent");
        User child = (User) hm.get("child");

        if (parent != null && child != null) {
            auditTrailDAOObj.insertAuditLog(AuditAction.ORGANIZATION_CHART_NODE_ASSIGNED,
                    child.getFirstName() + " " + child.getLastName() + " re-assigned to "
                            + parent.getFirstName() + " " + parent.getLastName(),
                    request, "0");
        }

        if (success) {
            retMsg = "{success:true}";
        } else {
            retMsg = "{success:false,msg:\""
                    + messageSource.getMessage("hrms.common.not.assign.parent.node.employee.role", null,
                            "Could not assign because, parent node has Employee role.",
                            RequestContextUtils.getLocale(request))
                    + "\"}";
        }
        jobj.put("data", retMsg);

        jobj1.put("valid", true);
        jobj1.put("data", jobj);
        jobj1.put("success", true);
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn("General exception in insertNode()", e);
        txnManager.rollback(status);
    }
    return new ModelAndView("jsonView", "model", jobj1.toString());
}

From source file:com.krawler.spring.organizationChart.organizationChartController.java

public ModelAndView updateNode(HttpServletRequest request, HttpServletResponse response) {
    JSONObject jobj = new JSONObject();
    JSONObject jobj1 = new JSONObject();
    String retMsg = "";
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {/*from  w ww  .  j  av  a2 s.  c  om*/

        String childid = request.getParameter("nodeid");
        String parentid = request.getParameter("fromId");

        HashMap<String, Object> hm = organizationService.updateNode(parentid, childid);

        boolean success = Boolean.parseBoolean(hm.get("success").toString());
        User parent = (User) hm.get("parent");
        User child = (User) hm.get("child");

        if (parent != null && child != null) {
            auditTrailDAOObj.insertAuditLog(AuditAction.ORGANIZATION_CHART_NODE_ASSIGNED,
                    child.getFirstName() + " " + child.getLastName() + " re-assigned to "
                            + parent.getFirstName() + " " + parent.getLastName(),
                    request, "0");
        }

        if (success) {
            retMsg = "{success:true}";
        } else {
            retMsg = "{success:false,msg:\""
                    + messageSource.getMessage("hrms.common.not.assign.parent.node.employee.role", null,
                            "Could not assign because, parent node has Employee role.",
                            RequestContextUtils.getLocale(request))
                    + "\"}";
        }
        jobj.put("data", retMsg);

        jobj1.put("valid", true);
        jobj1.put("data", jobj);
        jobj1.put("success", true);
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn("General exception in updateNode()", e);
        txnManager.rollback(status);
    }
    return new ModelAndView("jsonView", "model", jobj1.toString());
}

From source file:es.tid.fiware.rss.expenditureLimit.processing.test.ProcessingLimitServiceTest.java

/**
 * Update control dates//from  w  w w. j av  a2s .com
 * 
 * @param controls
 */
private void updateDate(List<DbeExpendControl> controls) {
    GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance();
    cal.setTime(new Date());
    cal.add(Calendar.DAY_OF_MONTH, 1);
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionStatus status = transactionManager.getTransaction(def);
    for (DbeExpendControl control : controls) {
        control.setDtNextPeriodStart(cal.getTime());
        controlService.createOrUpdate(control);
    }
    transactionManager.commit(status);

}

From source file:com.krawler.spring.organizationChart.organizationChartController.java

public ModelAndView deleteNode(HttpServletRequest request, HttpServletResponse response) {
    JSONObject jobj = new JSONObject();
    JSONObject jobj1 = new JSONObject();
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {//from   ww w  .ja v a 2  s . c o m

        boolean success = false;
        String nodeid = request.getParameter("nodeId");

        if (!StringUtil.isNullOrEmpty(nodeid)) {
            HashMap<String, Object> deleteJobj = organizationService.deleteNode(nodeid);

            success = Boolean.parseBoolean(deleteJobj.get("success").toString());

            List<Empprofile> ll = (List<Empprofile>) deleteJobj.get("childList");
            Empprofile emp = null;

            if (deleteJobj.get("deletedEmployee") != null) {
                emp = (Empprofile) deleteJobj.get("deletedEmployee");
            }

            User parentEmp = null;

            if (deleteJobj.get("parentEmployee") != null) {
                parentEmp = (User) deleteJobj.get("parentEmployee");
            }

            if (parentEmp != null && emp != null) {

                if (emp != null) {

                    String details = emp.getUserLogin().getUserName() + " [ "
                            + emp.getUserLogin().getUser().getFirstName() + " "
                            + emp.getUserLogin().getUser().getLastName() + " ] Un-assigned from "
                            + parentEmp.getFirstName() + " " + parentEmp.getLastName()
                            + " , and removed from Organization.";
                    auditTrailDAOObj.insertAuditLog(AuditAction.ORGANIZATION_CHART_NODE_DELETED, details,
                            request, "0");
                }

                for (Empprofile e : ll) {
                    String details = e.getUserLogin().getUser().getFirstName() + " "
                            + e.getUserLogin().getUser().getLastName() + "  re-assigned to "
                            + parentEmp.getFirstName() + " " + parentEmp.getLastName() + "  ";

                    auditTrailDAOObj.insertAuditLog(AuditAction.ORGANIZATION_CHART_NODE_ASSIGNED, details,
                            request, "0");
                }
            }

        }

        jobj.put("data", "{success:" + success + "}");

        jobj1.put("valid", true);
        jobj1.put("data", jobj);
        jobj1.put("success", true);
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn("General exception in deleteNode()", e);
        txnManager.rollback(status);
    }
    return new ModelAndView("jsonView", "model", jobj1.toString());
}

From source file:es.tid.fiware.rss.expenditureLimit.processing.test.ProcessingLimitServiceTest.java

/**
 * //from  w ww.  j  av a2  s. c o m
 * Check that not existing control are created.
 */
@Test
@Transactional(propagation = Propagation.SUPPORTS)
public void creationControls() {
    try {
        DbeTransaction tx = ProcessingLimitServiceTest.generateTransaction();
        // Set user for testing
        tx.setTxEndUserId("userForCreation");
        List<DbeExpendControl> controls = controlService.getExpendDataForUserAppProvCurrencyObCountry(
                tx.getTxEndUserId(), tx.getBmService(), tx.getTxAppProvider(), tx.getBmCurrency(),
                tx.getBmObMop().getBmObCountry());
        Assert.assertTrue(controls.size() == 0);
        // Update limits.
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
        TransactionStatus status = transactionManager.getTransaction(def);
        limitService.proccesLimit(tx);
        transactionManager.commit(status);
        controls = controlService.getExpendDataForUserAppProvCurrencyObCountry(tx.getTxEndUserId(),
                tx.getBmService(), tx.getTxAppProvider(), tx.getBmCurrency(), tx.getBmObMop().getBmObCountry());
        Assert.assertNotNull(controls);
        Assert.assertTrue(controls.size() == 3);
        // All the new control have to be set to 0
        for (DbeExpendControl control : controls) {
            Assert.assertTrue(control.getFtExpensedAmount().compareTo(new BigDecimal(0)) == 0);
        }
        ProcessingLimitServiceTest.logger.debug("Controls:" + controls.size());
    } catch (RSSException e) {
        ProcessingLimitServiceTest.logger.debug("Error: " + e.getMessage());

    }
}