Example usage for org.hibernate.criterion DetachedCriteria forClass

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

Introduction

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

Prototype

public static DetachedCriteria forClass(Class clazz) 

Source Link

Document

Static builder to create a DetachedCriteria for the given entity, by its Class.

Usage

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

License:Open Source License

protected List loadAllSubfolders(ExecutionContext context, String parentURI) {
    DetachedCriteria criteria = DetachedCriteria.forClass(RepoFolder.class);
    criteria.add(Restrictions.eq("hidden", Boolean.FALSE));

    if (parentURI != null && !Folder.SEPARATOR.equals(parentURI)) {
        criteria.add(Restrictions.or((parentURI.indexOf("%") == -1) ? Restrictions.eq("URI", parentURI)
                : Restrictions.like("URI", parentURI), Restrictions.like("URI", parentURI + "/%")));
    }// ww  w.  j a v  a 2 s  .c  om

    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List repoFolders = getHibernateTemplate().findByCriteria(criteria);
    List folders = new ArrayList(repoFolders.size());
    for (Iterator iter = repoFolders.iterator(); iter.hasNext();) {
        RepoFolder repoFolder = (RepoFolder) iter.next();
        Folder folder = repoFolder.toClient();
        folders.add(folder);
    }

    SortingUtils.sortFoldersByURI(getCollator(context), folders);

    return folders;
}

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

License:Open Source License

private DetachedCriteria createTenantSearchCriteria(String tenantId, boolean isCaseSensitive) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());

    criteria.add(/*from  w w w .  ja  v  a 2  s  .c om*/
            isCaseSensitive ? Restrictions.eq("tenantId", tenantId) : Restrictions.ilike("tenantId", tenantId));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);

    return criteria;
}

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

License:Open Source License

protected RepoTenant getRepoTenantByAlias(String tenantAlias, boolean required) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.eq("tenantAlias", tenantAlias));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantList = getHibernateTemplate().findByCriteria(criteria);
    RepoTenant tenant;/*  w ww .jav a2s  . c o  m*/
    if (tenantList.isEmpty()) {
        if (required) {
            throw new JSException("Tenant not found with Tenant Alias \"" + tenantAlias + "\"");//TODO i18n
        }

        log.debug("Tenant not found with Tenant Alias \"" + tenantAlias + "\"");
        tenant = null;
    } else {
        tenant = (RepoTenant) tenantList.get(0);
    }
    return tenant;
}

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

License:Open Source License

protected RepoTenant getRepoTenantBasedOnTenantUri(ExecutionContext context, String tenantUri) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.eq("tenantUri", tenantUri));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantList = getHibernateTemplate().findByCriteria(criteria);
    RepoTenant tenant = null;/*from w w  w  . j a va2 s .  c o m*/
    if (tenantList.isEmpty()) {
        log.debug("Tenant not found with Tenant Name \"" + tenantUri + "\"");
    } else {
        tenant = (RepoTenant) tenantList.get(0);
    }
    return tenant;
}

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 {//from   w  ww .  j av  a  2  s.  c  om
        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 boolean isMultiTenantEnvironment(ExecutionContext context) {
    DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass());
    criteria.add(Restrictions.ne("tenantUri", "/"));
    criteria.getExecutableCriteria(getSession()).setCacheable(true);
    List tenantList = getHibernateTemplate().findByCriteria(criteria);
    return tenantList.size() > 1;
}

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  ww .jav a2  s.  com*/
    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  ww .j a v a2 s. c  o  m
        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;/*  w w w  .ja  v  a  2 s. c  om*/

    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  w w.  j  av a2  s  .  c o  m*/
        }
    }

    return criteria;
}