List of usage examples for org.hibernate.criterion DetachedCriteria getExecutableCriteria
public Criteria getExecutableCriteria(Session session)
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; }