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.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;
}