List of usage examples for org.hibernate.criterion DetachedCriteria add
public DetachedCriteria add(Criterion criterion)
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected DetachedCriteria translateFilterToCriteria(FilterCriteria filterCriteria) { Class filterClass = filterCriteria == null ? null : filterCriteria.getFilterClass(); Class persistentClass;//from ww w . j a va2s .co m if (filterClass == null) { persistentClass = RepoResource.class; //persistentClass = RepoOlapUnit.class; } else { persistentClass = getPersistentClassMappings().getImplementationClass(filterClass); } DetachedCriteria criteria; if (persistentClass == null) { criteria = null; } else { criteria = DetachedCriteria.forClass(persistentClass); criteria.createAlias("parent", "parent"); criteria.add(Restrictions.eq("parent.hidden", Boolean.FALSE)); if (filterCriteria != null) { List filterElements = filterCriteria.getFilterElements(); if (!filterElements.isEmpty()) { Conjunction conjunction = Restrictions.conjunction(); HibernateFilter filter = new HibernateFilter(conjunction, this); for (Iterator it = filterElements.iterator(); it.hasNext();) { FilterElement filterElement = (FilterElement) it.next(); filterElement.apply(filter); } criteria.add(conjunction); } } } return criteria; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected DetachedCriteria resourceNameCriteria(Class persistentClass, RepoFolder folder, String name) { DetachedCriteria criteria = DetachedCriteria.forClass(persistentClass); criteria.add(Restrictions.naturalId().set("name", name).set("parent", folder)); return criteria; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
@Transactional(propagation = Propagation.REQUIRED) public int getFoldersCount(final String parentURI) { return (Integer) executeCallback(new DaoCallback() { public Object execute() { DetachedCriteria criteria = DetachedCriteria.forClass(RepoFolder.class); criteria.add(Restrictions.eq("hidden", Boolean.FALSE)); criteria.setProjection(Projections.rowCount()); if (parentURI != null && !Folder.SEPARATOR.equals(parentURI)) { criteria.add(Restrictions.or( (parentURI.contains("%")) ? Restrictions.eq("URI", parentURI) : Restrictions.like("URI", parentURI), Restrictions.like("URI", parentURI + "/%"))); }// w w w .ja v a2 s . c o m return new BasicTransformer().transformToCount(getHibernateTemplate().findByCriteria(criteria)); } }); }
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 + "/%"))); }//from w w w . j av a 2 s .c o m 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.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
@Transactional(propagation = Propagation.REQUIRED) public List<ResourceLookup> getDependentResources(ExecutionContext context, String uri, SearchCriteriaFactory searchCriteriaFactory, int current, int max) { final Resource resource = getResource(context, uri); if (resource == null) { throw new JSException("jsexception.resource.does.not.exist"); }//from w w w.j a v a 2 s. co m if (resource instanceof ReportDataSource) { //ReportDataSource can have dependent ReportUnit items final ReportDataSource dataSource = (ReportDataSource) resource; RepoResource repoDS = findByURI(RepoResource.class, uri, true); Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); //TODO GetDependentResourcesIds query can be updated to handle ReportUnit objects too org.hibernate.Query query = session.getNamedQuery("GetDependentResourcesIds"); query.setEntity("dependency", repoDS).setFirstResult(current); if (max > 0) { query.setMaxResults(max); } List<Long> depRes = query.list(); List<ResourceLookup> depResLookup = getResourcesByIdList(depRes); return depResLookup; //TODO delete if code above proves to work fine // SearchFilter filter = new SearchFilter() { // public void applyRestrictions(String type, ExecutionContext context, SearchCriteria criteria) { // DetachedCriteria dsCriteria = criteria.createCriteria("dataSource", "ds"); // dsCriteria.add(Restrictions.eq("ds.name", dataSource.getName())); // // DetachedCriteria dsParent = dsCriteria.createCriteria("parent", "dsParent"); // dsParent.add(Restrictions.eq("dsParent.URI", dataSource.getParentFolder())); // // // will use it later on for sorting // DetachedCriteria folderCriteria = criteria.createCriteria("parent", "f"); // } // }; // // SearchSorter sorter = new SearchSorter() { // public void applyOrder(String type, ExecutionContext context, SearchCriteria criteria) { // criteria.addOrder(Order.asc("f.URI")); // criteria.addOrder(Order.asc("name")); // // by default we retrieving only id's and to be able sort we had to add property to select clause // criteria.addProjection(Projections.property("f.URI")); // criteria.addProjection(Projections.property("name")); // } // }; // SearchCriteriaFactory criteriaFactory = searchCriteriaFactory.newFactory(ReportUnit.class.getName()); // List<ResourceLookup> resources = getResources( // context, // criteriaFactory, // Arrays.asList(filter), // sorter, // new BasicTransformerFactory(), // current, max); // // return resources; //TODO: replace 'exist' with right solution, it's hardcoded fix for CE version } else if (resource instanceof ReportUnit && exist("com.jaspersoft.ji.adhoc.DashboardResource")) { //ReportUnit can have dependent DashboardResource items final RepoResource repoResource = getRepoResource(resource); SearchFilter filter = new SearchFilter() { public void applyRestrictions(String type, ExecutionContext context, SearchCriteria criteria) { DetachedCriteria resourcesCriteria = criteria.createCriteria("resources", "res"); resourcesCriteria.add(Restrictions.eq("res.id", repoResource.getId())); } }; SearchSorter sorter = new SearchSorter() { @Override protected void addOrder(String type, ExecutionContext context, SearchCriteria criteria) { criteria.addOrder(Order.asc("name")).addOrder(Order.asc("id")); } @Override protected void addProjection(String type, ExecutionContext context, SearchCriteria criteria) { } }; SearchCriteriaFactory criteriaFactory = searchCriteriaFactory .newFactory("com.jaspersoft.ji.adhoc.DashboardResource"); List<ResourceLookup> resources = getResources(context, criteriaFactory, Arrays.asList(filter), sorter, new BasicTransformerFactory(), current, max); return resources; } else { return null; //unsupported resource } }
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( 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;//from w ww . j av a 2 s . co 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. ja v a 2 s.co 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 ww w. ja v a2 s . c o m 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; }