Example usage for org.hibernate.criterion DetachedCriteria createAlias

List of usage examples for org.hibernate.criterion DetachedCriteria createAlias

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria createAlias.

Prototype

public DetachedCriteria createAlias(String associationPath, String alias) 

Source Link

Document

Creates an association path alias within this DetachedCriteria.

Usage

From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java

License:Open Source License

protected DetachedCriteria translateFilterToCriteria(FilterCriteria filterCriteria) {
    Class filterClass = filterCriteria == null ? null : filterCriteria.getFilterClass();
    Class persistentClass;/*w  w w  .  java  2 s.  c o  m*/
    if (filterClass == null) {
        persistentClass = RepoResource.class;
        //persistentClass = RepoOlapUnit.class;    
    } else {
        persistentClass = getPersistentClassMappings().getImplementationClass(filterClass);
    }

    DetachedCriteria criteria;
    if (persistentClass == null) {
        criteria = null;
    } else {
        criteria = DetachedCriteria.forClass(persistentClass);
        criteria.createAlias("parent", "parent");
        criteria.add(Restrictions.eq("parent.hidden", Boolean.FALSE));
        if (filterCriteria != null) {
            List filterElements = filterCriteria.getFilterElements();
            if (!filterElements.isEmpty()) {
                Conjunction conjunction = Restrictions.conjunction();
                HibernateFilter filter = new HibernateFilter(conjunction, this);
                for (Iterator it = filterElements.iterator(); it.hasNext();) {
                    FilterElement filterElement = (FilterElement) it.next();
                    filterElement.apply(filter);
                }
                criteria.add(conjunction);
            }
        }
    }

    return criteria;
}

From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java

License:Open Source License

private int createNumberOfUsersOrRolesCriteria(String tenantId, Class aClass) {
    Integer rowCount = 0;// w  ww  . j a  v  a  2s.c  o m

    RepoTenant tenant = getRepoTenant(tenantId, false);
    if (tenant != null) {
        DetachedCriteria criteria = DetachedCriteria.forClass(aClass);
        criteria.createAlias("tenant", "t");

        criteria.add(Restrictions.or(Restrictions.eq("t.tenantUri", tenant.getTenantUri()), Restrictions
                .like("t.tenantUri", tenant.getTenantUri().equals("/") ? "/%" : tenant.getTenantUri() + "/%")));

        criteria.setProjection(Projections.count("id"));
        criteria.getExecutableCriteria(getSession()).setCacheable(true);

        List results = getHibernateTemplate().findByCriteria(criteria);
        if (results != null && !results.isEmpty()) {

            rowCount = (Integer) results.get(0);
        }
    }

    return rowCount;
}

From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java

License:Open Source License

private DetachedCriteria createSearchTenantsCriteria(String parentTenantId, String text) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());

    criteria.createAlias("parent", "p");
    criteria.add(Restrictions.naturalId().set("p.tenantId", parentTenantId));

    if (text != null) {
        text = databaseCharactersEscapeResolver.getEscapedText(text.trim());
        if (text.length() > 0) {
            Disjunction disjunction = Restrictions.disjunction();

            //                disjunction.add(Restrictions.ilike("tenantId", "%" + text + "%"));
            //                disjunction.add(Restrictions.ilike("tenantAlias", "%" + text + "%"));
            //                disjunction.add(Restrictions.ilike("tenantName", "%" + text + "%"));
            //                disjunction.add(Restrictions.ilike("tenantDesc", "%" + text + "%"));

            disjunction.add(new IlikeEscapeAwareExpression("tenantId", text, MatchMode.ANYWHERE));
            disjunction.add(new IlikeEscapeAwareExpression("tenantAlias", text, MatchMode.ANYWHERE));
            disjunction.add(new IlikeEscapeAwareExpression("tenantName", text, MatchMode.ANYWHERE));
            disjunction.add(new IlikeEscapeAwareExpression("tenantDesc", text, MatchMode.ANYWHERE));

            criteria.add(disjunction);/*from   w ww.  j ava  2 s.  com*/
        }
    }

    return criteria;
}

From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java

License:Open Source License

public Map<String, Integer> getSubTenantsCountMap(List<String> tenantIds) {
    if (tenantIds == null || tenantIds.size() == 0) {
        return Collections.emptyMap();
    }//from   w  w  w .  j av a2s  .co  m

    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());

    criteria.createAlias("parent", "p");
    criteria.add(Restrictions.in("p.tenantId", tenantIds));

    criteria.setProjection(Projections.projectionList().add(Projections.rowCount())
            .add(Projections.groupProperty("p.tenantId")));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);

    List results = getHibernateTemplate().findByCriteria(criteria);

    Map<String, Integer> subTenantCounts = new HashMap<String, Integer>(tenantIds.size(), 1);
    if (results != null && results.size() > 0) {
        for (Object result : results) {
            String tenantId = (String) ((Object[]) result)[1];
            Integer count = (Integer) ((Object[]) result)[0];

            subTenantCounts.put(tenantId, count);
        }
    }

    for (String tenantId : tenantIds) {
        if (!subTenantCounts.containsKey(tenantId)) {
            subTenantCounts.put(tenantId, 0);
        }
    }

    return subTenantCounts;
}

From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonOrdersAction.java

License:Apache License

public String execute() {
    log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :"
            + getSidx());//from ww  w .  j  a va 2  s  .  c  o m
    log.debug("Search :" + searchField + " " + searchOper + " " + searchString);

    // Calcalate until rows ware selected
    int to = (rows * page);

    // Calculate the first row to read
    int from = to - rows;

    // Criteria to Build SQL
    DetachedCriteria criteria = DetachedCriteria.forClass(Orders.class);

    if (id != null) {
        criteria.createAlias("customer", "c");
        criteria.add(Restrictions.eq("c.customernumber", id));
    }

    // Handle Search
    if (searchField != null) {
        if (searchField.equals("customernumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("ordernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("ordernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("ordernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("ordernumber", searchValue));
        } else if (searchField.equals("status") || searchField.equals("comments")) {
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq(searchField, searchString));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne(searchField, searchString));
            else if (searchOper.equals("bw"))
                criteria.add(Restrictions.like(searchField, searchString + "%"));
            else if (searchOper.equals("cn"))
                criteria.add(Restrictions.like(searchField, "%" + searchString + "%"));
        }
        if (searchField.equals("customer")) {
            Integer searchValue = Integer.parseInt(searchString);
            criteria.createAlias("customer", "c");

            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("c.customernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("c.customernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("c.customernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("c.customernumber", searchValue));
        }
    }

    // Count Orders
    records = ordersDao.countByCriteria(criteria);

    // Reset count Projection
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.ROOT_ENTITY);

    // Handle Order By
    if (sidx != null && !sidx.equals("")) {
        if (!sidx.equals("customer")) {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc(sidx));
            else
                criteria.addOrder(Order.desc(sidx));
        } else {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc("customer.customernumber"));
            else
                criteria.addOrder(Order.desc("customer.customernumber"));
        }
    }

    // Get Customers by Criteria
    gridModel = ordersDao.findByCriteria(criteria, from, rows);

    // Set to = max rows
    if (to > records)
        to = records;

    // Calculate total Pages
    total = (int) Math.ceil((double) records / (double) rows);

    return SUCCESS;
}

From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonTableAction.java

License:Apache License

public String execute() {
    log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :"
            + getSidx());//from  w  ww.ja  v a 2  s . c o  m
    log.debug("Search :" + searchField + " " + searchOper + " " + searchString);

    // Calcalate until rows ware selected
    int to = (rows * page);

    // Calculate the first row to read
    int from = to - rows;

    // Criteria to Build SQL
    DetachedCriteria criteria = DetachedCriteria.forClass(Customers.class);

    // Handle Search
    if (searchField != null) {
        if (searchField.equals("customernumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("customernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("customernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("customernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("customernumber", searchValue));
        } else if (searchField.equals("country") || searchField.equals("city")
                || searchField.equals("addressLine1") || searchField.equals("contactfirstname")
                || searchField.equals("contactlastname") || searchField.equals("customername")) {
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq(searchField, searchString));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne(searchField, searchString));
            else if (searchOper.equals("bw"))
                criteria.add(Restrictions.like(searchField, searchString + "%"));
            else if (searchOper.equals("cn"))
                criteria.add(Restrictions.like(searchField, "%" + searchString + "%"));
        } else if (searchField.equals("creditlimit")) {
            Double searchValue = Double.parseDouble(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("creditlimit", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("creditlimit", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("creditlimit", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("creditlimit", searchValue));
        }
        if (searchField.equals("employeenumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            criteria.createAlias("salesemployee", "se");

            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("se.employeenumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("se.employeenumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("se.employeenumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("se.employeenumber", searchValue));
        }
    }

    // Count Customers
    records = customersDao.countByCriteria(criteria);

    // Reset count Projection
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.ROOT_ENTITY);

    // Handle Order By
    if (sidx != null && !sidx.equals("")) {
        if (!sidx.equals("employeenumber")) {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc(sidx));
            else
                criteria.addOrder(Order.desc(sidx));
        } else {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc("salesemployee.employeenumber"));
            else
                criteria.addOrder(Order.desc("salesemployee.employeenumber"));
        }
    }

    // Get Customers by Criteria
    gridModel = customersDao.findByCriteria(criteria, from, rows);

    // Set to = max rows
    if (to > records)
        to = records;

    // Calculate total Pages
    total = (int) Math.ceil((double) records / (double) rows);

    return SUCCESS;
}

From source file:com.joey.Fujikom.modules.sys.service.SystemService.java

License:Open Source License

public Page<User> findUser(Page<User> page, User user) {
    User currentUser = UserUtils.getUser();
    DetachedCriteria dc = userDao.createDetachedCriteria();

    dc.createAlias("company", "company");
    if (user.getCompany() != null && StringUtils.isNotBlank(user.getCompany().getId())) {
        dc.add(Restrictions.or(Restrictions.eq("company.id", user.getCompany().getId()),
                Restrictions.like("company.parentIds", "%," + user.getCompany().getId() + ",%")));
    }//from  w  w  w .j av  a2s .  c  o m

    dc.createAlias("office", "office");
    if (user.getOffice() != null && StringUtils.isNotBlank(user.getOffice().getId())) {
        dc.add(Restrictions.or(Restrictions.eq("office.id", user.getOffice().getId()),
                Restrictions.like("office.parentIds", "%," + user.getOffice().getId() + ",%")));
    }

    // ????
    if (!currentUser.isAdmin()) {
        dc.add(Restrictions.ne("id", "1"));
    }

    dc.add(dataScopeFilter(currentUser, "office", ""));

    if (StringUtils.isNotEmpty(user.getLoginName())) {
        dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%"));
    }
    if (StringUtils.isNotEmpty(user.getName())) {
        dc.add(Restrictions.like("name", "%" + user.getName() + "%"));
    }

    dc.add(Restrictions.eq(User.FIELD_DEL_FLAG, User.DEL_FLAG_NORMAL));
    if (!StringUtils.isNotEmpty(page.getOrderBy())) {
        dc.addOrder(Order.asc("company.code")).addOrder(Order.asc("office.code")).addOrder(Order.desc("name"));
    }

    return userDao.find(page, dc);
}

From source file:com.koylubaevnt.library.db.DataHelper.java

private void createAliases(DetachedCriteria criteria) {
    criteria.createAlias("b.author", "author");
    criteria.createAlias("b.genre", "genre");
    criteria.createAlias("b.publisher", "publisher");
}

From source file:com.lohika.alp.reporter.fe.dao.TestDAOImpl.java

License:Open Source License

private DetachedCriteria getFilteredCriteria(TestFilter filter) {
    DetachedCriteria criteria = DetachedCriteria.forClass(Test.class);

    criteria.createAlias("suite", "suite");

    if (filter.getFrom() != null && filter.getTill() != null) {
        Calendar c = Calendar.getInstance();

        c.setTime(filter.getFrom());/*from ww w.j a v a 2  s.c  om*/
        c.set(Calendar.HOUR_OF_DAY, c.getActualMinimum(Calendar.HOUR_OF_DAY));
        c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE));
        c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND));
        c.set(Calendar.MILLISECOND, c.getActualMinimum(Calendar.MILLISECOND));
        Date from = c.getTime();

        c.setTime(filter.getTill());
        c.set(Calendar.HOUR_OF_DAY, c.getActualMaximum(Calendar.HOUR_OF_DAY));
        c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE));
        c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND));
        c.set(Calendar.MILLISECOND, c.getActualMaximum(Calendar.MILLISECOND));
        Date till = c.getTime();

        criteria.add(Restrictions.between("startDate", from, till));
    }

    if (filter.getTest() != "" && filter.getTest() != null) {
        try {
            criteria.add(querytr.translate("name", filter.getTest()));
        } catch (QueryTranslatorException e) {
            // TODO Put QueryTranslatorException into log
            e.printStackTrace();
        }
    }

    if (filter.getSuite() != "" && filter.getSuite() != null) {
        try {
            criteria.add(querytr.translate("suite.name", filter.getSuite()));
        } catch (QueryTranslatorException e) {
            // TODO Put QueryTranslatorException into log
            e.printStackTrace();
        }
    }
    return criteria;
}

From source file:com.lohika.alp.reporter.fe.dao.TestMethodDAOImpl.java

License:Open Source License

private DetachedCriteria getFilteredCriteria(TestMethodFilter filter) {
    DetachedCriteria criteria = DetachedCriteria.forClass(TestMethod.class);

    criteria.createAlias("testInstance", "testInstance").createAlias("testInstance.testClass", "testClass")
            .createAlias("testInstance.test", "test");

    if (filter.getFrom() != null && filter.getTill() != null) {
        Calendar c = Calendar.getInstance();

        c.setTime(filter.getFrom());//from  www.j  a v a  2  s .c o  m
        c.set(Calendar.HOUR_OF_DAY, c.getActualMinimum(Calendar.HOUR_OF_DAY));
        c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE));
        c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND));
        c.set(Calendar.MILLISECOND, c.getActualMinimum(Calendar.MILLISECOND));
        Date from = c.getTime();

        c.setTime(filter.getTill());
        c.set(Calendar.HOUR_OF_DAY, c.getActualMaximum(Calendar.HOUR_OF_DAY));
        c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE));
        c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND));
        c.set(Calendar.MILLISECOND, c.getActualMaximum(Calendar.MILLISECOND));
        Date till = c.getTime();

        criteria.add(Restrictions.between("startDate", from.getTime(), till.getTime()));
    }

    if (filter.getCl() != "" && filter.getCl() != null) {
        try {
            criteria.add(querytr.translate("testClass.name", filter.getCl()));
        } catch (QueryTranslatorException e) {
            // TODO Put QueryTranslatorException into log
            e.printStackTrace();
        }
    }

    if (filter.getGr() != "" && filter.getGr() != null) {
        criteria.createAlias("groups", "groups");

        try {
            criteria.add(querytr.translate("groups.name", filter.getGr()));
        } catch (QueryTranslatorException e) {
            // TODO Put QueryTranslatorException into log
            e.printStackTrace();
        }
    }

    return criteria;
}