Example usage for org.hibernate.criterion Projections groupProperty

List of usage examples for org.hibernate.criterion Projections groupProperty

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections groupProperty.

Prototype

public static PropertyProjection groupProperty(String propertyName) 

Source Link

Document

A grouping property value projection

Usage

From source file:com.ut.tekir.report.ContactStatusReportBean.java

License:LGPL

public DetachedCriteria buildCriteria() {

    DetachedCriteria crit = DetachedCriteria.forClass(FinanceTxn.class);

    crit.createAlias("contact", "contact");

    crit.setProjection(Projections.projectionList().add(Projections.groupProperty("contact.code"), "concode")
            .add(Projections.groupProperty("contact.fullname"), "conname")
            .add(Projections.groupProperty("contact.company"), "company")
            .add(Projections.groupProperty("contact.person"), "person")
            //.add( Projections.groupProperty("action"), "action" )
            //.add( Projections.groupProperty("amount.currency"), "currency" )
            .add(Projections.sum("amount.value"), "amount")
            .add(Projections.sum("amount.localAmount"), "localAmount")
            .add(Projections.sqlGroupProjection(
                    "{alias}.CCY as currency, sum( case {alias}.finance_action when 0 then {alias}.CCYVAL else 0 end ) as DEBIT, sum( case {alias}.finance_action when 0 then 0 else {alias}.CCYVAL end ) as CREDIT",
                    "{alias}.CCY", new String[] { "currency", "debit", "credit" },
                    new Type[] { Hibernate.STRING, Hibernate.BIG_DECIMAL, Hibernate.BIG_DECIMAL })));

    if (fm.getActive() != null) {
        crit.add(Restrictions.eq("active", fm.getActive()));
    }/*  w  ww.j a  v  a  2s . co m*/

    if (StringUtils.isNotEmpty(fm.getCode())) {
        crit.add(Restrictions.ilike("contact.code", fm.getCode(), MatchMode.START));
    }

    if (StringUtils.isNotEmpty(fm.getName())) {
        crit.add(Restrictions.ilike("contact.name", fm.getName(), MatchMode.START));
    }

    if (fm.getCategory() != null) {
        crit.add(Restrictions.eq("contact.category", fm.getCategory()));
    }

    if (fm.getBeginDate() != null) {
        crit.add(Restrictions.ge("date", fm.getBeginDate()));
    }

    if (fm.getEndDate() != null) {
        crit.add(Restrictions.le("date", fm.getEndDate()));
    }

    if (fm.getCompanyType() != null && !fm.getCompanyType().equals("All")) {
        if (fm.getCompanyType().equals("Person")) {
            crit.add(Restrictions.eq("contact.person", Boolean.TRUE));
        } else
            crit.add(Restrictions.eq("contact.person", Boolean.FALSE));
    }

    if (fm.getType() != null && fm.getType() != ContactType.All) {
        crit.add(Restrictions.eq("contact." + fm.getType().toString().toLowerCase() + "Type", Boolean.TRUE));
    }

    if (StringUtils.isNotEmpty(fm.getExCode1())) {
        crit.add(Restrictions.ilike("contact.exCode1", fm.getExCode1(), MatchMode.START));
    }

    if (StringUtils.isNotEmpty(fm.getExCode2())) {
        crit.add(Restrictions.ilike("contact.exCode2", fm.getExCode2(), MatchMode.START));
    }

    if (fm.getOrganization() != null) {
        crit.add(Restrictions.eq("contact.organization", fm.getOrganization()));
    }

    if (StringUtils.isNotEmpty(fm.getDocCode())) {
        crit.add(Restrictions.ilike("code", fm.getDocCode(), MatchMode.START));
    }

    if (fm.getDocumentType() != null && fm.getDocumentType() != DocumentType.Unknown) {
        crit.add(Restrictions.eq("this.documentType", fm.getDocumentType()));
    }

    if (fm.getProcessType() != null) {
        crit.add(Restrictions.eq("this.processType", fm.getProcessType()));
    }

    if (fm.getWorkBunch() != null) {
        crit.add(Restrictions.eq("this.workBunch", fm.getWorkBunch()));
    }

    if (fm.getContact() != null) {
        crit.add(Restrictions.eq("contact.id", fm.getContact().getId()));
    }

    /*
    crit.addOrder( Order.asc("date"));
    crit.addOrder( Order.asc("serial"));
     * 
     */
    crit.addOrder(Order.asc("contact.code"));
    crit.addOrder(Order.asc("amount.currency"));

    log.debug("Sonu : #0", crit);

    return crit;
}

From source file:com.ut.tekir.report.ProductStatusReportBean.java

License:LGPL

public DetachedCriteria buildCriteria() {

    DetachedCriteria crit = DetachedCriteria.forClass(ProductTxn.class);

    crit.createAlias("product", "product");
    crit.createAlias("warehouse", "warehouse");

    //TODO: Unit Price'n farkl dvizlerde olma sorunu zle...
    ProjectionList pl = Projections.projectionList();
    pl.add(Projections.groupProperty("product.code"), "prodcode")
            .add(Projections.groupProperty("product.name"), "prodname") //.add( Projections.groupProperty("action"), "action" )
            //.add( Projections.groupProperty("amount.currency"), "currency" )
            .add(Projections.groupProperty("product.group"), "group")
            .add(Projections.groupProperty("product.barcode1"), "barcode")
            .add(Projections.sum("quantity.value"), "quantity")
            .add(Projections.avg("unitPrice.value"), "unitPrice")
            .add(Projections.sqlGroupProjection("{alias}.UNIT as unit, " +
    //"sum( case {alias}.finance_action when 0 then {alias}.QUANTITY else 0 end ) as INQTY, " +
    //"sum( case {alias}.finance_action when 0 then 0 else {alias}.QUANTITY end ) as OUTQTY",
                    "sum( case {alias}.trade_action when 0 then {alias}.QUANTITY else 0 end ) as INQTY, "
                    + "sum( case {alias}.trade_action when 1 then {alias}.QUANTITY else 0 end ) as OUTQTY , "
                    + "sum( case {alias}.trade_action when 2 then {alias}.QUANTITY else 0 end ) as BUYRETQTY, "
                    + "sum( case {alias}.trade_action when 3 then {alias}.QUANTITY else 0 end ) as SELLRETQTY, "
                    + "sum( case {alias}.trade_action when 6 then {alias}.QUANTITY else 0 end ) as RESQTY , "
                    + "sum( case {alias}.trade_action when 7 then {alias}.QUANTITY else 0 end ) as DELQTY ",
                    "UNIT",
                    new String[] { "unit", "inqty", "outqty", "buyretqty", "sellretqty", "resqty", "delqty" },
                    new Type[] { Hibernate.STRING, Hibernate.DOUBLE, Hibernate.DOUBLE, Hibernate.DOUBLE,
                            Hibernate.DOUBLE, Hibernate.DOUBLE, Hibernate.DOUBLE }));

    if (warehouseBase) {
        //Depo krlml
        pl.add(Projections.groupProperty("warehouse.code"), "warecode")
                .add(Projections.groupProperty("warehouse.name"), "warename");
        crit.addOrder(Order.asc("warehouse.code"));
    }/*from  www. j  ava  2  s.c  om*/

    crit.setProjection(pl);

    crit.add(Restrictions.eq("active", true));

    if (code != null && code.length() > 0) {
        crit.add(Restrictions.ilike("product.code", code, MatchMode.START));
    }

    if (name != null && name.length() > 0) {
        crit.add(Restrictions.ilike("product.name", name, MatchMode.START));
    }

    if (productType != null) {

        if (getProductType() == 1) {
            crit.add(Restrictions.like("this.productType", ProductType.Product));
        } else if (getProductType() == 2) {
            crit.add(Restrictions.like("this.productType", ProductType.Service));

        }
    }

    if (barcode != null && barcode.length() > 0) {
        Criterion criteria1 = Restrictions.like("product.barcode1", barcode, MatchMode.START);
        Criterion criteria2 = Restrictions.like("product.barcode2", barcode, MatchMode.START);
        Criterion criteria3 = Restrictions.like("product.barcode3", barcode, MatchMode.START);

        crit.add(Restrictions.or(criteria1, Restrictions.or(criteria2, criteria3)));
    }

    if (group != null) {
        crit.add(Restrictions.eq("product.group", group));
    }

    if (warehouse != null) {
        crit.add(Restrictions.eq("warehouse", warehouse));
    }

    if (beginDate != null) {
        crit.add(Restrictions.ge("date", beginDate));
    }

    if (endDate != null) {
        crit.add(Restrictions.le("date", endDate));
    }

    if (category != null) {
        crit.add(Restrictions.eq("product.category", category));
    }
    if (docCode != null && docCode.length() > 0) {
        crit.add(Restrictions.ilike("code", docCode, MatchMode.START));
    }

    if (getDocumentType() != null && getDocumentType() != DocumentType.Unknown) {
        crit.add(Restrictions.eq("this.documentType", getDocumentType()));
    }

    if (getWorkBunch() != null) {
        crit.add(Restrictions.eq("this.workBunch", getWorkBunch()));
    }

    /*
    crit.addOrder( Order.asc("date"));
    crit.addOrder( Order.asc("serial"));
     * 
     */

    crit.addOrder(Order.asc("product.name"));

    log.debug("Sonu : #0", crit);

    return crit;
}

From source file:com.ut.tekir.stock.ProductTxnReportBean.java

License:LGPL

public DetachedCriteria buildCriteriaForWarehouse() {

    DetachedCriteria crit = DetachedCriteria.forClass(ProductTxn.class);

    crit.createAlias("product", "product");
    crit.createAlias("warehouse", "warehouse");

    ProjectionList pl = Projections.projectionList();
    pl.add(Projections.groupProperty("product.code"), "prodcode")
            .add(Projections.groupProperty("product.name"), "prodname")
            .add(Projections.groupProperty("product.group"), "group")
            .add(Projections.groupProperty("product.barcode1"), "barcode")
            .add(Projections.groupProperty("warehouse.code"), "warecode")
            .add(Projections.groupProperty("warehouse.name"), "warename")
            .add(Projections.sum("quantity.value"), "quantity")
            .add(Projections.avg("unitPrice.value"), "unitPrice")
            .add(Projections.sqlGroupProjection("{alias}.UNIT as unit, "
                    + "sum( case {alias}.trade_action when 0 then {alias}.QUANTITY else 0 end ) as INQTY, "
                    + "sum( case {alias}.trade_action when 1 then {alias}.QUANTITY else 0 end ) as OUTQTY , "
                    + "sum( case {alias}.trade_action when 2 then {alias}.QUANTITY else 0 end ) as BUYRETQTY, "
                    + "sum( case {alias}.trade_action when 3 then {alias}.QUANTITY else 0 end ) as SELLRETQTY, "
                    + "sum( case {alias}.trade_action when 6 then {alias}.QUANTITY else 0 end ) as RESQTY , "
                    + "sum( case {alias}.trade_action when 7 then {alias}.QUANTITY else 0 end ) as DELQTY ",
                    "UNIT",
                    new String[] { "unit", "inqty", "outqty", "buyretqty", "sellretqty", "resqty", "delqty" },
                    new Type[] { Hibernate.STRING, Hibernate.DOUBLE, Hibernate.DOUBLE, Hibernate.DOUBLE,
                            Hibernate.DOUBLE, Hibernate.DOUBLE, Hibernate.DOUBLE }));

    crit.setProjection(pl);/*from   w w w.j a v a  2 s  . co  m*/

    crit.add(Restrictions.eq("active", true));

    if (filterModel.getBarcode() != null && filterModel.getBarcode().length() > 0) {
        Criterion criteria1 = Restrictions.eq("product.barcode1", filterModel.getBarcode());
        Criterion criteria2 = Restrictions.eq("product.barcode2", filterModel.getBarcode());
        Criterion criteria3 = Restrictions.eq("product.barcode3", filterModel.getBarcode());

        crit.add(Restrictions.or(criteria1, Restrictions.or(criteria2, criteria3)));
    }

    if (filterModel.getProduct() != null) {
        crit.add(Restrictions.eq("product", filterModel.getProduct()));
    }
    crit.addOrder(Order.asc("product.name"));

    return crit;
}

From source file:de.sub.goobi.helper.ProjectHelper.java

License:Open Source License

/**
 * static to reduce load/*from ww w.  jav a 2s.  co  m*/
 *
 * @param project
 *            object
 * @return a GoobiCollection of the following structure: GoobiCollection 1-n
 *         representing the steps each step has the following properties @
 *         stepTitle, stepOrder,
 *         stepCount,stepImageCount,totalProcessCount,totalImageCount which
 *         can get extracted by the IGoobiCollection Interface using the
 *         getItem(<name>) method standard workflow of the project
 *         according to the definition that only steps shared by all
 *         processes are returned. The workflow order is returned according
 *         to the average order return by a grouping by step title consider
 *         workflow structure to be a prototype, it would probably make
 *         things easier, to either assemble the underlying construction in
 *         separate classes or to create a new class with these properties
 */

@SuppressWarnings("unchecked")
public static synchronized List<StepInformation> getProjectWorkFlowOverview(Project project) {
    Long totalNumberOfProc = 0l;
    Long totalNumberOfImages = 0l;

    Session session = Helper.getHibernateSession();

    Criteria critTotals = session.createCriteria(Process.class, "proc");
    critTotals.add(Restrictions.eq("proc.template", Boolean.FALSE));
    critTotals.add(Restrictions.eq("proc.project", project));

    ProjectionList proList = Projections.projectionList();

    proList.add(Projections.count("proc.id"));
    proList.add(Projections.sum("proc.sortHelperImages"));

    critTotals.setProjection(proList);

    List<Object> list = critTotals.list();

    for (Object obj : list) {
        Object[] row = (Object[]) obj;

        totalNumberOfProc = (Long) row[FieldList.totalProcessCount.fieldLocation];
        totalNumberOfImages = (Long) row[FieldList.totalImageCount.fieldLocation];
        ;
    }

    proList = null;
    list = null;

    Criteria critSteps = session.createCriteria(Task.class);

    critSteps.createCriteria("process", "proc");
    critSteps.addOrder(Order.asc("ordering"));

    critSteps.add(Restrictions.eq("proc.template", Boolean.FALSE));
    critSteps.add(Restrictions.eq("proc.project", project));

    proList = Projections.projectionList();

    proList.add(Projections.groupProperty(("title")));
    proList.add(Projections.count("id"));
    proList.add(Projections.avg("ordering"));

    critSteps.setProjection(proList);

    // now we have to discriminate the hits where the max number of hits
    // doesn't reach numberOfProcs
    // and extract a workflow, which is the workflow common for all
    // processes according to its titel
    // the position will be calculated by the average of 'reihenfolge' of
    // steps

    list = critSteps.list();

    String title;
    Double averageStepOrder;
    Long numberOfSteps;
    Long numberOfImages;

    List<StepInformation> workFlow = new ArrayList<>();

    for (Object obj : list) {
        Object[] row = (Object[]) obj;

        title = (String) (row[FieldList.stepName.fieldLocation]);
        numberOfSteps = (Long) (row[FieldList.stepCount.fieldLocation]);
        averageStepOrder = (Double) (row[FieldList.stepOrder.fieldLocation]);

        // in this step we only take the steps which are present in each of
        // the workflows
        if (numberOfSteps.equals(totalNumberOfProc)) {
            StepInformation newStep = new StepInformation(title, averageStepOrder);
            newStep.setNumberOfTotalImages(totalNumberOfImages.intValue());
            newStep.setNumberOfTotalSteps(totalNumberOfProc.intValue());
            workFlow.add(newStep);
        }
    }

    Criteria critStepDone = session.createCriteria(Task.class, "step");

    critStepDone.createCriteria("process", "proc");

    critStepDone.add(Restrictions.eq("step.processingStatus", TaskStatus.DONE.getValue()));
    critStepDone.add(Restrictions.eq("proc.template", Boolean.FALSE));
    critStepDone.add(Restrictions.eq("proc.project", project));

    ProjectionList proCount = Projections.projectionList();

    proCount.add(Projections.groupProperty(("step.title")));
    proCount.add(Projections.count("proc.id"));
    proCount.add(Projections.sum("proc.sortHelperImages"));

    critStepDone.setProjection(proCount);

    list = critStepDone.list();

    for (Object obj : list) {

        Object[] row = (Object[]) obj;

        title = (String) (row[FieldList.stepName.fieldLocation]);
        numberOfSteps = (Long) (row[FieldList.stepCount.fieldLocation]);
        numberOfImages = (Long) (row[FieldList.imageCount.fieldLocation]);

        // getting from the workflow collection the collection which
        // represents step <title>
        // we only created one for each step holding the counts of processes
        for (StepInformation currentStep : workFlow) {
            if (currentStep.getTitle().equals(title)) {
                currentStep.setNumberOfStepsDone(numberOfSteps.intValue());
                currentStep.setNumberOfImagesDone(numberOfImages.intValue());
            }
        }
    }
    Comparator<StepInformation> comp = new compareWorkflowSteps();
    Collections.sort(workFlow, comp);
    return workFlow;
}

From source file:edu.monash.merc.dao.DSVersionDAO.java

License:Open Source License

/**
 * {@inheritDoc}/*w  w w . jav  a2s  . c  o  m*/
 */
@SuppressWarnings("unchecked")
public List<DBVersionBean> getLatestDBSVersionByChromosome(ChromType chromType) {
    Criteria dsvCriteria = this.session().createCriteria(this.persistClass);
    dsvCriteria.add(Restrictions.eq("chromosome", chromType.chm()));
    dsvCriteria.setProjection(
            Projections.projectionList().add(Projections.groupProperty("dbSource").as("dbSource"))
                    .add(Projections.max("id").as("id")).add(Projections.max("createdTime").as("createdTime"))
                    .add(Projections.max("versionNo").as("versionNo")));
    dsvCriteria.addOrder(Order.asc("dbSource"));
    return dsvCriteria.setResultTransformer(Transformers.aliasToBean(DBVersionBean.class)).list();
}

From source file:edu.monash.merc.dao.TPBVersionDAO.java

License:Open Source License

/**
 * {@inheritDoc}//  w  w  w . j  a va 2  s  .  c o m
 */
@SuppressWarnings("unchecked")
public List<MaxDsTPBVersion> getAllChromosomeTPBVersionByMaxCombinatedDs() {
    Criteria tpbVCriteria = this.session().createCriteria(this.persistClass);
    tpbVCriteria.setProjection(
            Projections.projectionList().add(Projections.groupProperty("chromosome").as("chromosome"))
                    .add(Projections.max("id").as("id")).add(Projections.max("trackToken").as("trackToken"))
                    .add(Projections.max("versionNo").as("versionNo")));
    List<MaxDsTPBVersion> maxDsTPBVersions = tpbVCriteria
            .setResultTransformer(Transformers.aliasToBean(MaxDsTPBVersion.class)).list();
    //        System.out.println("======= max ds tpb versions size: " + maxDsTPBVersions.size());
    //        for(MaxDsTPBVersion maxDsTPBVersion : maxDsTPBVersions){
    //            System.out.println("========= > " +maxDsTPBVersion.getId() + " -- " + maxDsTPBVersion.getChromosome() + " -- " + maxDsTPBVersion.getTrackToken() + " -- " + maxDsTPBVersion.getVersionNo());
    //        }
    return maxDsTPBVersions;
}

From source file:es.sm2.openppm.core.dao.ProcurementpaymentsDAO.java

License:Open Source License

/**
 * Get Procurement Budgets from Project/*  w  w w  .ja v a 2s .  c  o m*/
 * 
 * @param proj
 * @param joins
 * @return
 */
public List<ProcurementBudget> consProcurementBudgetsByProject(Project proj, List<String> joins) {
    Criteria crit = getSession().createCriteria(getPersistentClass());

    for (String join : joins) {
        crit.setFetchMode(join, FetchMode.JOIN);
    }

    crit.addOrder(Order.asc(Procurementpayments.SELLER))
            .setProjection(Projections.projectionList().add(Projections.sum(Procurementpayments.PLANNEDPAYMENT))
                    .add(Projections.sum(Procurementpayments.ACTUALPAYMENT)).add(Projections.rowCount())
                    .add(Projections.groupProperty(Procurementpayments.SELLER)))
            .add(Restrictions.eq(Procurementpayments.PROJECT, proj));

    List<ProcurementBudget> lista = new ArrayList<ProcurementBudget>();
    List<String> purchase = null;

    for (int i = 0; i < crit.list().size(); i++) {
        ProcurementBudget budget = new ProcurementBudget();
        Object[] row = (Object[]) crit.list().get(i);
        budget.setPlannedPayment((Double) row[0]);
        budget.setActualPayment((Double) row[1]);
        budget.setnPayments((Integer) row[2]);

        Seller seller = (Seller) row[3];
        budget.setSeller(seller.getName());

        purchase = consPruchaseOrder(seller, proj);
        String order = "";
        if (purchase != null) {
            for (String s : purchase) {
                if (!order.equals("")) {
                    order += ", ";
                }
                order += s;
            }
        }
        budget.setPurchaseOrder(order);

        lista.add(budget);
    }

    return lista;
}

From source file:es.tekniker.framework.ktek.questionnaire.mng.db.QuestionnaireManagerDB.java

License:Open Source License

public Ktek_questionnaire[] getQuestionnaires4TypeMonitoringActivityPlanned(short typeMonitoringActivity,
        String codUser, String codtelecareprogram, short status) {
    Ktek_questionnaire[] arrayInstance = null;
    DAOFactory lDAOFactory = null;/* www  .  j av a2s  .  c  o m*/
    Ktek_questionnaireDAO instanceDAO = null;
    Ktek_questionnaireCriteria objKtek_questionnaireCriteria = null;
    long nowInMillis = 0, todayStartInMillis = 0, todayEndInMillis = 0;
    PersistentSession session = null;
    Ktek_userquestionnaire_planningCriteria objKtek_userquestionnaire_planningCriteria = null;

    try {
        int hours, minutes, seconds;
        nowInMillis = Utils.getCalendarGMT().getTimeInMillis();

        hours = 0;
        minutes = 0;
        seconds = 0;
        todayStartInMillis = Utils.getTimeinMillis4TimeGMT(hours, minutes, seconds);

        hours = 23;
        minutes = 59;
        seconds = 59;
        todayEndInMillis = Utils.getTimeinMillis4TimeGMT(hours, minutes, seconds);

        session = es.tekniker.framework.ktek.questionnaire.KTEKPersistentManager.instance().getSession();
        session.beginTransaction();

        lDAOFactory = es.tekniker.framework.ktek.questionnaire.DAOFactory.getDAOFactory();
        instanceDAO = lDAOFactory.getKtek_questionnaireDAO();

        objKtek_questionnaireCriteria = new Ktek_questionnaireCriteria();
        objKtek_questionnaireCriteria.typemonitoringactivity.eq(typeMonitoringActivity);
        objKtek_questionnaireCriteria.isdeleted.eq((short) 0);
        objKtek_questionnaireCriteria.datevalidfrom.lt(nowInMillis);

        objKtek_userquestionnaire_planningCriteria = objKtek_questionnaireCriteria
                .createKtek_userquestionnaire_planningCriteria();
        objKtek_userquestionnaire_planningCriteria.coduser.eq(codUser);
        objKtek_userquestionnaire_planningCriteria.codtelecareprogram.eq(codtelecareprogram);
        objKtek_userquestionnaire_planningCriteria.statusquestionnaire.eq(status);
        objKtek_userquestionnaire_planningCriteria.plannedfrom.le(nowInMillis);
        objKtek_userquestionnaire_planningCriteria.plannedto.ge(nowInMillis);

        objKtek_questionnaireCriteria
                .setProjection(Projections.projectionList()
                        .add(Projections.groupProperty("ktek_pk_idquestionnaire"), "ktek_pk_idquestionnaire"))
                .setResultTransformer(Transformers.aliasToBean(Ktek_questionnaire.class));

        arrayInstance = instanceDAO.listKtek_questionnaireByCriteria(objKtek_questionnaireCriteria);

        log.error("nowInMillis " + nowInMillis);

        if (arrayInstance != null)
            log.debug(
                    "getQuestionnaires4TypeMonitoringActivityPlanned instance is not null Before Filter unique values "
                            + arrayInstance.length);
        else
            log.info(
                    "getQuestionnaires4TypeMonitoringActivityPlanned instance is null for typeMonitoringActivity "
                            + typeMonitoringActivity);

        if (arrayInstance.length > 0) {
            Integer[] arrayIds = new Integer[arrayInstance.length];
            for (int i = 0; i < arrayInstance.length; i++) {
                arrayIds[i] = arrayInstance[i].getKtek_pk_idquestionnaire();
            }

            objKtek_questionnaireCriteria = new Ktek_questionnaireCriteria();
            objKtek_questionnaireCriteria.ktek_pk_idquestionnaire.in(arrayIds);
            arrayInstance = instanceDAO.listKtek_questionnaireByCriteria(objKtek_questionnaireCriteria);
        }

        session.close();

    } catch (PersistentException e) {
        log.error("getQuestionnaires4TypeMonitoringActivityPlanned Exception " + e.getMessage());
        e.printStackTrace();
        try {
            if (session != null)
                session.close();
        } catch (PersistentException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }

    return arrayInstance;
}

From source file:fr.insalyon.creatis.vip.application.server.dao.hibernate.SimulationStatsData.java

License:Open Source License

@Override
public List<String> getWorkflowsPerUser(List<String> workflowsId) throws WorkflowsDBDAOException {
    List<String> result = new ArrayList<String>();
    try {// w  w w. j a  v  a  2 s.c  o m
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria = session.createCriteria(Workflow.class);
        criteria.add(Restrictions.in("id", workflowsId));

        ProjectionList p = Projections.projectionList();
        p.add(Projections.groupProperty("username"));
        p.add(Projections.property("username"));
        p.add(Projections.alias(Projections.count("status"), "nbWfls"));

        //p.add(Projections.count("status"));
        criteria.setProjection(p);
        criteria.addOrder(Order.desc("nbWfls"));
        List l = criteria.list();
        session.getTransaction().commit();
        session.close();

        Iterator it = l.iterator();
        while (it.hasNext()) {
            Object ob[] = (Object[]) it.next();
            if (ob[0] != null && ob[1] != null) {
                result.add(String.valueOf(ob[0]) + "##" + String.valueOf(ob[2]));
            }
        }

        return result;
    } catch (HibernateException ex) {
        throw new WorkflowsDBDAOException(ex);
    }
}

From source file:fr.insalyon.creatis.vip.application.server.dao.hibernate.SimulationStatsData.java

License:Open Source License

@Override
public List<String> getApplications(List<String> workflowsId) throws WorkflowsDBDAOException {
    List<String> result = new ArrayList<String>();
    try {//from ww  w  . j  ava  2s.c  o  m
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria = session.createCriteria(Workflow.class);
        criteria.add(Restrictions.in("id", workflowsId));

        ProjectionList p = Projections.projectionList();
        p.add(Projections.groupProperty("application"));
        p.add(Projections.property("application"));
        p.add(Projections.alias(Projections.count("status"), "nbWfls"));
        criteria.setProjection(p);
        criteria.setProjection(p);
        criteria.addOrder(Order.desc("nbWfls"));
        List l = criteria.list();

        session.getTransaction().commit();
        session.close();

        Iterator it = l.iterator();
        while (it.hasNext()) {
            Object ob[] = (Object[]) it.next();
            if (ob[0] != null && ob[1] != null) {
                result.add(String.valueOf(ob[0]) + "##" + String.valueOf(ob[2]));
            }

        }
        return result;
    } catch (HibernateException ex) {
        throw new WorkflowsDBDAOException(ex);
    }
    //System.out.println("getApplications, first result is " + result.get(0).toString());
}