List of usage examples for org.hibernate.criterion DetachedCriteria forClass
public static DetachedCriteria forClass(Class clazz)
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; }