Example usage for org.hibernate.criterion Projections projectionList

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

Introduction

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

Prototype

public static ProjectionList projectionList() 

Source Link

Document

Create a new projection list.

Usage

From source file:inventory.executors.CommonTasks.java

public void fillComboBoxByBillPrefix(ComboBox billPrefixCombo) {
    try {//w  ww .j  av a 2  s  .c  o  m
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria billPrefixCriteria = session.createCriteria(BillPrefixTable.class);
        billPrefixCriteria.setProjection(Projections.projectionList().add(Projections.property("billPrefix")));
        ArrayList<BillPrefixTable> billPrefixList = (ArrayList<BillPrefixTable>) billPrefixCriteria.list();
        Iterator<BillPrefixTable> billPrefixItr = billPrefixList.iterator();

        if (billPrefixItr.hasNext()) {
            billPrefixCombo.setTooltip(new Tooltip());
            if (billPrefixCombo != null) {
                billPrefixCombo.getItems().removeAll();
            }
            while (billPrefixItr.hasNext()) {
                billPrefixCombo.getItems().add("" + billPrefixItr.next());
            }
            // Enabling AutoComplete Text
            //                AutoTextCompletionJComboBox.enable(billPrefixCombo);
        }
    } catch (IllegalArgumentException iae) {
        fillComboBoxByBillPrefix(billPrefixCombo);
        iae.printStackTrace();
    } catch (HibernateException ex) {
        ex.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (session.isOpen()) {
            session.close();
        }
    }
}

From source file:io.milton.cloud.server.apps.admin.WebsiteAccessReport.java

License:Open Source License

@Override
public GraphData runReport(Organisation org, Website website, Date start, Date finish, JsonResult jsonResult) {
    Session session = SessionManager.session();
    Criteria crit = session.createCriteria(AccessLog.class)
            .setProjection(Projections.projectionList().add(Projections.min("reqDate"))
                    .add(Projections.rowCount()).add(Projections.groupProperty("reqYear"))
                    .add(Projections.groupProperty("reqMonth")).add(Projections.groupProperty("reqDay"))
                    .add(Projections.groupProperty("reqHour")));
    if (start != null) {
        crit.add(Restrictions.ge("reqDate", start));
    }/*from  w  w  w  . j  av a 2s . c  om*/
    if (finish != null) {
        crit.add(Restrictions.le("reqDate", finish));
    }
    if (website != null) {
        crit.add(Restrictions.le("website", website));
    }
    if (org != null) {
        crit.add(Restrictions.le("organisation", org));
    }
    List list = crit.list();
    List<TimeDataPointBean> dataPoints = new ArrayList<>();
    for (Object oRow : list) {
        Object[] arr = (Object[]) oRow;
        Date date = (Date) arr[0];
        Integer count = (Integer) arr[1];
        TimeDataPointBean b = new TimeDataPointBean();
        b.setDate(date.getTime());
        b.setValue(count);
        dataPoints.add(b);
    }
    GraphData graphData = new GraphData();
    graphData.setData(dataPoints);
    String[] labels = { "Hits" };
    graphData.setLabels(labels);
    graphData.setXkey("date");
    String[] ykeys = { "value" };
    graphData.setYkeys(ykeys);
    return graphData;
}

From source file:io.milton.cloud.server.apps.reporting.SiteActivityReportPage.java

License:Open Source License

private void searchDaily(Map<String, String> params, OutputStream out) throws IOException {
    Date start;//from   w ww.ja v a  2  s  .co  m
    Date finish;
    try {
        String sStart = params.get("startDate");
        start = parseDate(sStart);
        System.out.println("start: " + start);
        String sFinish = params.get("finishDate");
        finish = parseDate(sFinish);
        System.out.println("finish: " + finish);
    } catch (ParseException parseException) {
        JsonResult jsonResult = new JsonResult(false, "Invalid date: " + parseException.getMessage());
        jsonResult.write(out);
        return;
    }
    Session session = SessionManager.session();
    Criteria crit = session.createCriteria(AccessLog.class)
            .setProjection(Projections.projectionList().add(Projections.min("reqDate"))
                    .add(Projections.rowCount()).add(Projections.groupProperty("reqYear"))
                    .add(Projections.groupProperty("reqMonth")).add(Projections.groupProperty("reqDay"))
                    .add(Projections.groupProperty("reqHour")));
    if (start != null) {
        crit.add(Restrictions.ge("reqDate", start));
    }
    if (finish != null) {
        crit.add(Restrictions.le("reqDate", finish));
    }
    List list = crit.list();
    List<TimeDataPointBean> dataPoints = new ArrayList<>();
    for (Object oRow : list) {
        Object[] arr = (Object[]) oRow;
        Date date = (Date) arr[0];
        Integer count = (Integer) arr[1];
        TimeDataPointBean b = new TimeDataPointBean();
        b.setDate(date.getTime());
        b.setValue(count);
        dataPoints.add(b);
    }
    JsonResult jsonResult = new JsonResult(true);
    jsonResult.setData(dataPoints);
    jsonResult.write(out);
}

From source file:io.milton.cloud.server.apps.signup.GroupSignupsReport.java

License:Open Source License

@Override
public GraphData runReport(Organisation org, Website website, Date start, Date finish, JsonResult jsonResult) {
    log.info("runReport: " + start + " - " + finish);
    Session session = SessionManager.session();
    Criteria crit = session.createCriteria(SignupLog.class)
            .setProjection(Projections.projectionList().add(Projections.min("reqDate"))
                    .add(Projections.rowCount()).add(Projections.groupProperty("groupEntity"))
                    .add(Projections.groupProperty("reqYear")).add(Projections.groupProperty("reqMonth"))
                    .add(Projections.groupProperty("reqDay")).add(Projections.groupProperty("reqHour")));
    //        if (start != null) {
    //            crit.add(Restrictions.ge("reqDate", start));
    //        }/*from  www .  j  av a2s  .  co m*/
    //        if (finish != null) {
    //            crit.add(Restrictions.le("reqDate", finish));
    //        }
    //        if( website != null ) {
    //            crit.add(Restrictions.le("website", website));
    //        }
    //        if( org != null ) {
    //            crit.add(Restrictions.le("organisation", org));
    //        }
    List list = crit.list();
    Set<String> groupsInSeries = new HashSet<>();
    List<Map<String, Object>> dataPoints = new ArrayList<>();
    Map<Long, Map<String, Object>> mapOfDataPointsByTime = new HashMap<>();
    log.info("results: " + list.size());
    for (Object oRow : list) {
        Object[] arr = (Object[]) oRow;
        log.info("got row: " + arr);
        Date date = (Date) arr[0];
        Long time = date.getTime();
        Integer count = (Integer) arr[1];
        Group group = (Group) arr[2];

        groupsInSeries.add(group.getName()); // keep a set of group names for labels

        Map<String, Object> dataPoint = mapOfDataPointsByTime.get(time);
        if (dataPoint == null) {
            dataPoint = new HashMap<>();
            dataPoint.put("date", time);
            mapOfDataPointsByTime.put(time, dataPoint);
            dataPoints.add(dataPoint);
        }
        dataPoint.put(group.getName(), count);

    }
    GraphData graphData = new GraphData();
    graphData.setData(dataPoints);
    String[] labels = { "Signups" };
    graphData.setLabels(labels);
    graphData.setXkey("date");
    String[] ykeys = new String[groupsInSeries.size()];
    groupsInSeries.toArray(ykeys);
    graphData.setYkeys(ykeys);
    log.info("data points: " + dataPoints.size());
    return graphData;
}

From source file:ispok.dao.VisitorHibernateJpaDao.java

@Override
public <ENTITY> List<ENTITY> getPage(int first, int rows, String sortBy, boolean ascending,
        Map<String, Object> filters, Class<ENTITY> clazz) {

    logger.entry();/*  w w w . j  a v a2 s . c o m*/

    Session session = getEntityManager().unwrap(Session.class);

    Criteria criteria = session.createCriteria(clazz, "visitor");

    for (Map.Entry<String, Object> filter : filters.entrySet()) {
        logger.debug("Filter: {}={}", filter.getKey(), filter.getValue());

        if ("id".equals(filter.getKey())) {
            criteria.add(Restrictions.eq("id", Long.parseLong(filter.getValue().toString())));
        } else {
            criteria.add(Restrictions.ilike(filter.getKey(), (String) filter.getValue(), MatchMode.START));
        }
    }

    if (ascending) {
        criteria.addOrder(Order.asc(sortBy));
    } else {
        criteria.addOrder(Order.desc(sortBy));
    }

    criteria.setFirstResult(first);
    criteria.setMaxResults(rows);

    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.property("id"), "id")
            .add(Projections.property("visitor.firstName"), "firstName")
            .add(Projections.property("visitor.lastName"), "lastName")
            .add(Projections.property("visitor.birthDate"), "birthDate")
            .add(Projections.property("visitor.nin"), "nin")
            .add(Projections.property("visitor.nickname"), "nickname")
            .add(Projections.property("visitor.telephone"), "telephone")
            .add(Projections.property("visitor.email"), "email").add(Projections.property("visitor.sex"), "sex")
            .add(Projections.property("visitor.passwordHash"), "passwordHash")
            .add(Projections.property("visitor.saltHash"), "saltHash")
            .add(Projections.property("visitor.idNumber"), "idNumber")
            .add(Projections.property("visitor.bonusPoints"), "bonusPoints")
            .add(Projections.property("visitor.citizenship"), "citizenship")
            .add(Projections.property("visitor.domicile"), "domicile")
            .add(Projections.property("visitor.bonusPoints"), "bonusPoints");

    criteria.setProjection(projectionList);
    criteria.setResultTransformer(Transformers.aliasToBean(clazz));
    List<ENTITY> list = criteria.list();

    logger.exit();
    return list;
}

From source file:it.unitn.elisco.dao.AdministratorDAO.java

public List<PersonBasics> findCourseAdmins(String emailLike) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    // Fetch admins:
    // - which are course admin (isSysAdmin is false)
    // - which email begins with the specified query (optional, otherwise return all admins)

    Criteria criteria = s.createCriteria(Administrator.class);
    criteria.add(Restrictions.eq("isSysAdmin", false));
    if (emailLike != null && emailLike != "") {
        criteria.add(Restrictions.like("email", emailLike, MatchMode.START));
    }//from w w  w . j av  a  2  s .  c  o m

    // Then return results as PersonBasics objects
    criteria.setProjection(Projections.projectionList().add(Projections.property("name"), "name")
            .add(Projections.property("surname"), "surname").add(Projections.property("email"), "email"));
    criteria.setResultTransformer(Transformers.aliasToBean(PersonBasics.class));

    List<PersonBasics> res = criteria.list();

    tx.commit();
    s.close();

    return res;
}

From source file:it.unitn.elisco.dao.AdministratorDAO.java

public List<PersonBasics> findSysAdmins(String emailLike) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    // Fetch admins:
    // - which are system admin (isSysAdmin is true)
    // - which email begins with the specified query (optional, otherwise return all admins)

    Criteria criteria = s.createCriteria(Administrator.class);
    criteria.add(Restrictions.eq("isSysAdmin", true));
    if (emailLike != null && emailLike != "") {
        criteria.add(Restrictions.like("email", emailLike, MatchMode.START));
    }//from w w  w .  j  a v  a2s .co  m

    // Then return results as PersonBasics objects
    criteria.setProjection(Projections.projectionList().add(Projections.property("name"), "name")
            .add(Projections.property("surname"), "surname").add(Projections.property("email"), "email"));
    criteria.setResultTransformer(Transformers.aliasToBean(PersonBasics.class));

    List<PersonBasics> res = criteria.list();

    tx.commit();
    s.close();

    return res;
}

From source file:it.unitn.elisco.dao.AdministratorDAO.java

public List<PersonBasics> findAllAdmins(String emailLike) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    // Fetch admins:
    // - which email begins with the specified query (optional, otherwise return all admins)

    Criteria criteria = s.createCriteria(Administrator.class);
    if (emailLike != null && emailLike != "") {
        criteria.add(Restrictions.like("email", emailLike, MatchMode.START));
    }/*ww  w .ja va2s. c  o  m*/

    // Then return results as PersonBasics objects
    criteria.setProjection(Projections.projectionList().add(Projections.property("name"), "name")
            .add(Projections.property("surname"), "surname").add(Projections.property("email"), "email"));
    criteria.setResultTransformer(Transformers.aliasToBean(PersonBasics.class));

    List<PersonBasics> res = criteria.list();

    tx.commit();
    s.close();

    return res;
}

From source file:it.unitn.elisco.dao.CourseDAO.java

public List<PersonBasics> findAdminsLikeForCourse(String name, String year, String adminEmail) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    // Fetch admins:
    // - which administrates the specified course
    // - which email begins with the specified query (optional, otherwise return all admins for the course)

    Criteria criteria = s.createCriteria(Course.class);
    criteria.add(Restrictions.eq("name", name)).add(Restrictions.eq("year", year));

    criteria.createAlias("admins", "a");

    if (adminEmail != null && !adminEmail.equals("")) {
        criteria.add(Restrictions.like("a.email", adminEmail, MatchMode.START));
    }//from w w  w  . j ava 2  s  .  c o  m

    // Then return results as PersonBasics objects
    criteria.setProjection(Projections.projectionList().add(Projections.property("a.name"), "name")
            .add(Projections.property("a.surname"), "surname").add(Projections.property("a.email"), "email"))
            .setResultTransformer(Transformers.aliasToBean(PersonBasics.class));

    List<PersonBasics> res = criteria.list();

    tx.commit();
    s.close();

    return res;
}

From source file:it.unitn.elisco.dao.CourseDAO.java

public List<StudentBasics> getRankings(String name, String year) {
    Session s = HibernateUtil.getSession();
    Transaction tx = s.beginTransaction();

    // Fetch rankings (student info) for specified course

    Criteria criteria = s.createCriteria(Course.class);
    criteria.add(Restrictions.eq("name", name)).add(Restrictions.eq("year", year));

    criteria.createAlias("students", "sc").createAlias("sc.student", "s")
            .addOrder(Property.forName("sc.score").desc());

    // Then return results as PersonBasics objects
    criteria.setProjection(Projections.projectionList().add(Projections.property("s.id"), "id")
            .add(Projections.property("s.email"), "email").add(Projections.property("s.name"), "name")
            .add(Projections.property("s.surname"), "surname")
            .add(Projections.property("s.imagePath"), "imagePath")
            .add(Projections.property("s.student_number"), "student_number")
            .add(Projections.property("sc.score"), "score"))
            .setResultTransformer(Transformers.aliasToBean(StudentBasics.class));

    List<StudentBasics> res = criteria.list();

    tx.commit();//w w  w  .  ja v  a  2 s  .com
    s.close();

    return res;
}