Example usage for org.hibernate.criterion Restrictions like

List of usage examples for org.hibernate.criterion Restrictions like

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions like.

Prototype

public static SimpleExpression like(String propertyName, Object value) 

Source Link

Document

Apply a "like" constraint to the named property

Usage

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

License:Open Source License

private DetachedCriteria createSubTenantsCriteria(RepoTenant parentTenant, String text, int depth) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    String value = "/%";

    if ("/".equals(parentTenant.getTenantUri())) {
        /* Excluding root parent from sub list. */
        criteria.add(Restrictions.ne("tenantId", parentTenant.getTenantId()));
    } else {//  ww w. ja  va 2  s.c  o m
        value = parentTenant.getTenantUri() + value;
    }

    criteria.add(Restrictions.like("tenantUri", value));

    if (depth > 0) {
        StringBuilder boundary = new StringBuilder(value);
        for (; depth > 0; depth--) {
            boundary.append("/%");
        }
        criteria.add(Restrictions.not(Restrictions.like("tenantUri", boundary.toString())));
    }

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

            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);
        }
    }
    return criteria;
}

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

License:Open Source License

public String getUniqueTenantId(String proposedTenantId) {
    List similarTenantIdList;/*  w w w.ja va 2 s. c  o  m*/
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.like("tenantId", proposedTenantId + "%").ignoreCase());
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantList = getHibernateTemplate().findByCriteria(criteria);
    if (tenantList.isEmpty()) {
        similarTenantIdList = Collections.emptyList();
    } else {
        similarTenantIdList = new ArrayList(tenantList.size());
        for (int i = 0; i < tenantList.size(); i++) {
            similarTenantIdList.add(((RepoTenant) tenantList.get(i)).getTenantId());
        }
    }

    return getUniqueItem(proposedTenantId, similarTenantIdList);
}

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

License:Open Source License

@Transactional(propagation = Propagation.REQUIRED)
public String getUniqueTenantAlias(String proposedAlias) {
    List similarAliasesAndTenantIdList;
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.like("tenantAlias", proposedAlias + "%").ignoreCase());
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantAliasesList = getHibernateTemplate().findByCriteria(criteria);
    if (tenantAliasesList.isEmpty()) {
        similarAliasesAndTenantIdList = Collections.emptyList();
    } else {/*from w w  w  .j a v  a2s.  c om*/
        similarAliasesAndTenantIdList = new ArrayList(tenantAliasesList.size());
        for (int i = 0; i < tenantAliasesList.size(); i++) {
            similarAliasesAndTenantIdList.add(((RepoTenant) tenantAliasesList.get(i)).getTenantAlias());
        }
    }

    criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.like("tenantId", proposedAlias + "%"));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantIdsList = getHibernateTemplate().findByCriteria(criteria);
    if (!tenantIdsList.isEmpty()) {
        if (similarAliasesAndTenantIdList.isEmpty()) {
            similarAliasesAndTenantIdList = new ArrayList(tenantIdsList.size());
        }
        for (int i = 0; i < tenantIdsList.size(); i++) {
            similarAliasesAndTenantIdList.add(((RepoTenant) tenantIdsList.get(i)).getTenantId());
        }
    }

    // Alias should be unique among all tenant IDs and tenant aliases.
    return getUniqueItem(proposedAlias, similarAliasesAndTenantIdList);
}

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;//ww w  .  j a  va  2  s. co 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.jaxrs.poc.hypermedia.root.ExcludeFolderFilter.java

License:Open Source License

@Override
public void applyRestrictions(String type, ExecutionContext context, SearchCriteria criteria) {

    String alias = criteria.getAlias("parent", "p");

    for (String uri : toListOfUrisToExclude(context, criteria)) {

        // Filter uri
        criteria.add(Restrictions.ne(alias + ".URI", uri));

        // Filter children uris
        String childrenUrlsExp = (uri.endsWith(Folder.SEPARATOR)) ? uri + "%" : uri + Folder.SEPARATOR + "%";
        criteria.add(Restrictions.not(Restrictions.like(alias + ".URI", childrenUrlsExp)));
    }//from   w w  w  .ja v a 2  s  . c o m
}

From source file:com.jaspersoft.jasperserver.search.filter.FolderFilter.java

License:Open Source License

protected void addSearchModeFolderRestrictions(SearchCriteria criteria, String folderUri, String alias) {
    criteria.add(Restrictions.or(Restrictions.like(alias + ".URI", createSubFoldersLikeUri(folderUri)),
            Restrictions.eq(alias + ".URI", folderUri)));
}

From source file:com.jaspersoft.jasperserver.search.filter.FolderFilter.java

License:Open Source License

private void addRoleAccessUrlsRestrictions(SearchCriteria criteria) {
    String alias = criteria.getAlias("parent", "p");

    for (UriDescriptor uriDescriptor : roleAccessUrisResolver.getRestrictedUris()) {
        String uri = (uriDescriptor.isAbsolute()) ? uriDescriptor.getUri()
                : roleAccessUrisResolver.getAbsoluteUri(uriDescriptor.getUri());
        // Filter uri
        criteria.add(Restrictions.ne(alias + ".URI", uri));

        // Filter children uris
        String childrenUrlsExp = (uri.endsWith(Folder.SEPARATOR)) ? uri + "%" : uri + Folder.SEPARATOR + "%";
        criteria.add(Restrictions.not(Restrictions.like(alias + ".URI", childrenUrlsExp)));
    }/*from   w  w w . j  av  a2 s  . c  om*/
}

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());/*w w  w .  j  a  va2  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());/*  ww w. j  a 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  www .ja v  a 2s .  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);
}