Example usage for org.hibernate.criterion DetachedCriteria getExecutableCriteria

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

Introduction

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

Prototype

public Criteria getExecutableCriteria(Session session) 

Source Link

Document

Get an executable instance of Criteria to actually run the query.

Usage

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;/*from   w ww  .j  a v a2 s  . c  om*/
    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 av  a  2s  . c  om
    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

@SuppressWarnings({ "unchecked" })
@Transactional(propagation = Propagation.REQUIRED)
public List<String> getAllSubTenantIdList(ExecutionContext context, final String parentTenantId) {
    List<String> subTenantIdList = new ArrayList<String>();

    /* Retrieving parent tenant. */
    RepoTenant parent = getRepoTenant(parentTenantId, false);

    if (parent != null) {
        DetachedCriteria criteria = createSubTenantsCriteria(parent, null, -1);
        criteria.getExecutableCriteria(getSession()).setCacheable(true);
        criteria.setProjection(Projections.property("tenantId"));
        subTenantIdList.addAll(getHibernateTemplate().findByCriteria(criteria));
    }/*from  w w  w.  jav a2  s  .  c  om*/

    return subTenantIdList;
}

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;//from  w  ww .j  ava  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   ww w.j av  a2 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  w  ww  .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.api.metadata.tenant.service.impl.TenantServiceImpl.java

License:Open Source License

public int getSubTenantsCount(ExecutionContext context, String parentTenantId, String text) {
    DetachedCriteria criteria = createSearchTenantsCriteria(parentTenantId, text);

    criteria.setProjection(Projections.rowCount());
    criteria.getExecutableCriteria(getSession()).setCacheable(true);

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

    if (results != null && !results.isEmpty()) {
        return (Integer) results.get(0);
    }/*from  ww w .jav a 2  s . c  o  m*/

    return 0;
}

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

License:Open Source License

public List<Tenant> getSubTenants(ExecutionContext context, String parentTenantId, String text, int firstResult,
        int maxResults) {
    DetachedCriteria criteria = createSearchTenantsCriteria(parentTenantId, text);
    criteria.getExecutableCriteria(getSession()).setCacheable(true);

    List results = getHibernateTemplate().findByCriteria(criteria, firstResult, maxResults);

    return toClientTenantList(results);
}

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();
    }//  w  w w  .jav a  2 s.  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;
}