Example usage for org.hibernate.criterion DetachedCriteria forClass

List of usage examples for org.hibernate.criterion DetachedCriteria forClass

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria forClass.

Prototype

public static DetachedCriteria forClass(Class clazz) 

Source Link

Document

Static builder to create a DetachedCriteria for the given entity, by its Class.

Usage

From source file:com.jaspersoft.jasperserver.api.engine.scheduling.hibernate.HibernateReportJobsPersistenceService.java

License:Open Source License

protected List getJobs(List<ReportJob> jobIDList) {
    HibernateTemplate hibernateTemplate = getHibernateTemplate();
    DetachedCriteria crit = DetachedCriteria.forClass(PersistentReportJob.class);
    Disjunction criterion = Restrictions.disjunction();
    for (ReportJob idHolder : jobIDList)
        criterion.add(Restrictions.eq("id", idHolder.getId()));
    crit.add(criterion);//from   ww  w .  j av  a  2s  .com
    List persistentJobs = hibernateTemplate.findByCriteria(crit);
    return persistentJobs;
}

From source file:com.jaspersoft.jasperserver.api.logging.access.service.impl.AccessServiceImpl.java

License:Open Source License

public List<AccessEvent> getAllEvents(int firstResult, int maxResults) {
    DetachedCriteria criteria = DetachedCriteria
            .forClass(persistentClassFactory.getImplementationClass(AccessEvent.class));
    criteria.addOrder(Order.asc("eventDate"));

    List results = getHibernateTemplate().findByCriteria(criteria, firstResult, maxResults);

    if (results != null && !results.isEmpty()) {
        List<AccessEvent> clientEventsList = new ArrayList<AccessEvent>(results.size());
        Log logger = LogFactory.getLog(COMMAND_OUT_LOGGER);
        for (Object event : results) {
            try {
                AccessEvent accessEvent = (AccessEvent) ((IdedObject) event).toClient(clientClassFactory);
                clientEventsList.add(accessEvent);
            } catch (AccessEventImpl.TranslateException aex) {
                logger.debug(/*  ww w  . j  a  v  a 2s . c  o m*/
                        "Unable to translate access event:  resource = " + aex.getResource().getClass()
                                + ", factory = " + aex.getResourceFactory().getClass(),
                        aex.getOriginalException());
            } catch (Exception ex) {
                logger.debug("Unable to translate access event", ex);
            }
        }
        return clientEventsList;
    } else {
        return Collections.emptyList();
    }
}

From source file:com.jaspersoft.jasperserver.api.logging.access.service.impl.AccessServiceImpl.java

License:Open Source License

public int getAccessEventsCount() {
    DetachedCriteria criteria = DetachedCriteria
            .forClass(persistentClassFactory.getImplementationClass(AccessEvent.class));
    criteria.setProjection(Projections.rowCount());
    return (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
}

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);
    }//  ww w  .  j  a va  2  s  . 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 w  w  .j a va 2 s  .  co 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;//from  ww w.  j  a v  a 2s.  c  o  m
    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

protected List<ResourceLookup> getResourcesByIdList(List<Long> idList,
        SearchCriteriaFactory searchCriteriaFactory) {
    List resourceList = new ArrayList();

    if (!idList.isEmpty()) {
        DetachedCriteria criteria = searchCriteriaFactory != null
                ? searchCriteriaFactory.create(ExecutionContextImpl.getRuntimeExecutionContext(), null)
                : DetachedCriteria.forClass(RepoResource.class);
        criteria.add(Restrictions.in("id", idList));
        resourceList = getHibernateTemplate().findByCriteria(criteria);
    }/* ww w.  j a  v  a  2s . c  o m*/

    // Reordering is required because the result (resource) list is not in the same order as id list.
    List orderedResourceList = orderByIdList(resourceList, idList);

    return toLookups(orderedResourceList, true);
}

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;/*w w  w. jav a2 s .c o 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 + "/%")));
            }/*from   w  w w  .  j a  va  2 s .c om*/
            return new BasicTransformer().transformToCount(getHibernateTemplate().findByCriteria(criteria));
        }
    });
}