List of usage examples for org.hibernate.criterion DetachedCriteria getExecutableCriteria
public Criteria getExecutableCriteria(Session session)
From source file:com.itrus.ca.common.persistence.BaseDaoImpl.java
License:Open Source License
@SuppressWarnings("unchecked") public List<T> manyFind(DetachedCriteria detachedCriteria, ResultTransformer resultTransformer, int size) { Criteria criteria = detachedCriteria.getExecutableCriteria(getSession()); criteria.setResultTransformer(resultTransformer); criteria.setFirstResult(0);//from w w w .j a v a2 s. c om criteria.setMaxResults(size); return criteria.list(); }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache.java
License:Open Source License
protected CachedItem getCachedItem(String uri, RepositoryCacheableItem cacheableItem, boolean clearPendingSavesCreatedByFindByCriteria, Session session) { if (log.isDebugEnabled()) { log.debug("HibernateRepositoryCache: Looking in repository cache \"" + cacheableItem.getCacheName() + "\" for resource \"" + uri); }/* w ww. j a v a 2s . c o m*/ DetachedCriteria criteria = DetachedCriteria.forClass(CachedItem.class); criteria.add(Restrictions.naturalId().set("cacheName", cacheableItem.getCacheName()).set("uri", uri)); criteria.getExecutableCriteria(getSession()).setCacheable(true); List list = null; if (setFindByCriteriaToReadOnly) { // flush all pending saves, updates and deletes to the database (However, it may slows down the performance, since we have to synchronize the method list = findByCritera(criteria, clearPendingSavesCreatedByFindByCriteria); } else { // no synchronization, but spring hibernate template creates an extra update statement when calling findByCriteria if (session == null) list = getHibernateTemplate().findByCriteria(criteria); else list = criteria.getExecutableCriteria(session).list(); } CachedItem item = null; if (list.isEmpty()) { if (log.isDebugEnabled()) { log.debug("did not find \"" + uri + "\" in cache " + cacheableItem.getCacheName()); } item = null; } else { item = (CachedItem) list.get(0); if (log.isDebugEnabled()) { log.debug("found \"" + uri + "\" in cache " + cacheableItem.getCacheName() + ". isReference: " + item.isItemReference()); } } return item; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected RepoFolder getFolder(String uri, boolean required) { if (uri == null || uri.length() == 0 || uri.equals(Folder.SEPARATOR)) { return getRootFolder(); }// w ww . j a v a2 s. c o m // Deal with URIs that come with "repo:" on the front final String repoURIPrefix = Resource.URI_PROTOCOL + ":"; String workUri = uri.startsWith(repoURIPrefix) ? uri.substring(repoURIPrefix.length()) : uri; DetachedCriteria criteria = DetachedCriteria.forClass(RepoFolder.class); criteria.add(Restrictions.naturalId().set("URI", workUri)); criteria.getExecutableCriteria(getSession()).setCacheable(true); List foldersList = getHibernateTemplate().findByCriteria(criteria); RepoFolder folder; if (foldersList.isEmpty()) { if (required) { String quotedURI = "\"" + uri + "\""; throw new JSResourceNotFoundException("jsexception.folder.not.found.at", new Object[] { quotedURI }); } log.debug("Folder not found at \"" + uri + "\""); folder = null; } else { folder = (RepoFolder) foldersList.get(0); } return folder; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected RepoFolder getRootFolder() { DetachedCriteria criteria = DetachedCriteria.forClass(RepoFolder.class); criteria.add(Restrictions.naturalId().set("URI", Folder.SEPARATOR)); criteria.getExecutableCriteria(getSession()).setCacheable(true); List foldersList = getHibernateTemplate().findByCriteria(criteria); RepoFolder root;//ww w. j a v a2 s . com if (foldersList.isEmpty()) { root = null; } else { root = (RepoFolder) foldersList.get(0); } return root; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
public boolean resourceExists(ExecutionContext executionContext, FilterCriteria filterCriteria) { DetachedCriteria criteria = translateFilterToCriteria(filterCriteria); boolean exists; if (criteria == null) { exists = false;//from w w w .j ava 2 s . c o m } else { criteria.setProjection(Projections.rowCount()); criteria.getExecutableCriteria(getSession()).setCacheable(true); List countList = getHibernateTemplate().findByCriteria(criteria); int count = ((Integer) countList.get(0)).intValue(); exists = count > 0; } return exists; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
public List loadRepoResourceList(final ExecutionContext context, final FilterCriteria filterCriteria, final boolean sort) { DetachedCriteria criteria = translateFilterToCriteria(filterCriteria); // If we don't have a mapping, ignore it if (criteria == null) { return new ArrayList(); } else {//from ww w . j a va 2 s . c o m criteria.getExecutableCriteria(getSession()).setCacheable(true); } List repoResources = getHibernateTemplate().findByCriteria(criteria); if (sort) { sortRepoResourcesByURI(context, repoResources); } return repoResources; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected RepoResource findByName(Class persistentClass, RepoFolder folder, String name, boolean required) { DetachedCriteria criteria = resourceNameCriteria(persistentClass, folder, name); criteria.getExecutableCriteria(getSession()).setCacheable(true); List resourceList = getHibernateTemplate().findByCriteria(criteria); RepoResource res;//ww w . j a va2s. c o m if (resourceList.isEmpty()) { if (required) { String uri = "\"" + folder.getURI() + Folder.SEPARATOR + name + "\""; throw new JSResourceNotFoundException("jsexception.resource.of.type.not.found", new Object[] { uri, persistentClass }); } res = null; } else { res = (RepoResource) resourceList.get(0); } return res; }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected boolean resourceExists(RepoFolder folder, String name, Class resourceType) { Class persistentClass = resourcePersistentClass(resourceType); DetachedCriteria criteria = resourceNameCriteria(persistentClass, folder, name); criteria.setProjection(Projections.rowCount()); criteria.getExecutableCriteria(getSession()).setCacheable(true); List countList = getHibernateTemplate().findByCriteria(criteria); int count = ((Integer) countList.get(0)).intValue(); return count > 0; }
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 ava 2 s . com*/ 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 ww w . j a v a 2 s . c om isCaseSensitive ? Restrictions.eq("tenantId", tenantId) : Restrictions.ilike("tenantId", tenantId)); criteria.getExecutableCriteria(getSession()).setCacheable(true); return criteria; }