Example usage for org.hibernate.criterion DetachedCriteria add

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

Introduction

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

Prototype

public DetachedCriteria add(Criterion criterion) 

Source Link

Document

Add a restriction

Usage

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

License:Open Source License

public String getUniqueTenantId(String proposedTenantId) {
    List similarTenantIdList;//from   w  w  w .j  av a 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 {/* ww  w.j  a  v  a  2 s . com*/
        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;/*from   ww  w.ja v  a  2  s  . 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  a v  a 2s . c  om
        }
    }

    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   ww  w.j  ava2 s.  c o 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.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.java

License:Open Source License

private DetachedCriteria createUserSearchCriteria(String username, RepoTenant tenant, boolean isCaseSensitive) {
    DetachedCriteria criteria = DetachedCriteria.forClass(getPersistentUserClass());

    criteria.add(
            isCaseSensitive ? Restrictions.eq("username", username) : Restrictions.ilike("username", username));
    criteria.add(Restrictions.eq("tenant", tenant));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);

    return criteria;
}

From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.java

License:Open Source License

protected RepoRole getRepoRole(String roleName, String tenantId) {
    RepoTenant tenant = getPersistentTenant(tenantId, false);
    if (tenant == null && !isNullTenant(tenantId)) {
        //if the requested tenant was not found, return null
        if (log.isDebugEnabled()) {
            log.debug("Tenant " + tenantId + " not found, returning null role");
        }//w w  w . j  a  v  a2s  .  co m
        return null;
    }

    DetachedCriteria criteria = DetachedCriteria.forClass(getPersistentRoleClass());
    if (tenant == null) {
        criteria.add(Restrictions.isNull("tenant")).add(Restrictions.eq("roleName", roleName));
    } else {
        criteria.add(Restrictions.naturalId().set("tenant", tenant).set("roleName", roleName));
    }
    List roleList = getHibernateTemplate().findByCriteria(criteria);
    RepoRole role = null;
    if (roleList.isEmpty()) {
        if (log.isDebugEnabled()) {
            log.debug("Role not found with role name \"" + roleName + "\""
                    + (tenantId == null ? "" : (", tenant \"" + tenantId + "\"")));
        }
    } else {
        role = (RepoRole) roleList.get(0);
    }
    return role;
}

From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.java

License:Open Source License

protected DetachedCriteria createTenantVisibleRolesCriteria(Set tenantIds, String name, boolean order) {
    DetachedCriteria criteria = DetachedCriteria.forClass(getPersistentRoleClass());
    String roleNameField = "roleName";

    addVisibleTenantCriteria(criteria, tenantIds);

    if (name != null) {
        name = databaseCharactersEscapeResolver.getEscapedText(name.trim());

        if (name.length() > 0) {
            //                Criterion roleNameCriterion = Restrictions.ilike(roleNameField, "%"
            //                        + name.trim() + "%");
            //                criteria.add(roleNameCriterion);
            criteria.add(new IlikeEscapeAwareExpression(roleNameField, name, MatchMode.ANYWHERE));
        }//from ww  w.j a v  a2  s.  com
    }

    if (order) {
        criteria.addOrder(Order.asc(roleNameField));
    }

    return criteria;
}

From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.java

License:Open Source License

protected DetachedCriteria createAvailableRolesCriteria(String roleName, Set userRoles, String userName,
        boolean order) {

    DetachedCriteria criteria = DetachedCriteria.forClass(getPersistentRoleClass());
    String roleNameField = "roleName";
    String externallyDefinedField = "externallyDefined";

    if (userRoles != null && userRoles.size() > 0) {

        List userRoleIdList = getRoleIdList(userRoles);
        criteria.add(Restrictions.not(Restrictions.in("id", userRoleIdList)));
    }/*  w w w.j av  a 2s. c  om*/

    Criterion roleNameCriterion = Restrictions.ilike(roleNameField, "%" + roleName.trim() + "%");
    criteria.add(roleNameCriterion);

    criteria.add(Restrictions.eq(externallyDefinedField, Boolean.FALSE));

    if (order) {
        criteria.addOrder(Order.asc(roleNameField));
    }

    return criteria;
}

From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.java

License:Open Source License

protected List getRoleIdList(Set roleNames) {
    DetachedCriteria criteria = DetachedCriteria.forClass(getPersistentRoleClass());

    if (roleNames != null && roleNames.size() > 0) {

        criteria.add(Restrictions.in("roleName", roleNames));
    } else {/*from  w  ww  .  j ava2  s  .c  o m*/

        return new ArrayList();
    }

    criteria.setProjection(Projections.id());

    return getHibernateTemplate().findByCriteria(criteria);
}