List of usage examples for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY
ResultTransformer DISTINCT_ROOT_ENTITY
To view the source code for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.
Click Source Link
From source file:org.grails.orm.hibernate.query.AbstractHibernateQuery.java
License:Apache License
@Override public Object singleResult() { if (criteria == null) throw new IllegalStateException("Cannot execute query using a detached criteria instance"); if (hibernateProjectionList != null) { criteria.setProjection(hibernateProjectionList.getHibernateProjectionList()); }//from ww w . j a v a 2s . com criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); applyDefaultSortOrderAndCaching(); applyFetchStrategies(); if (hasJoins) { try { return proxyHandler.unwrap(criteria.uniqueResult()); } catch (NonUniqueResultException e) { return singleResultViaListCall(); } } else { return singleResultViaListCall(); } }
From source file:org.grouter.domain.dao.ejb3.GenericEjb3DAO.java
License:Apache License
/** * {@inheritDoc}//from w ww. j a v a 2 s .c o m */ public T findById(final ID id, final String... joinProps) { org.hibernate.Session session = ((HibernateEntityManager) getEntityManager()).getSession(); org.hibernate.Criteria criteria = session.createCriteria(getPersistentClass()); criteria.add(Restrictions.idEq(id)); for (String prop : joinProps) { criteria.setFetchMode(prop, FetchMode.JOIN); } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return (T) criteria.uniqueResult(); }
From source file:org.grouter.domain.dao.ejb3.GenericEjb3DAO.java
License:Apache License
@SuppressWarnings("unchecked") public T findById(final Class clazz, final T id, final String... joinProps) { org.hibernate.Session session = ((HibernateEntityManager) getEntityManager()).getSession(); org.hibernate.Criteria criteria = session.createCriteria(getPersistentClass()); criteria.add(Restrictions.idEq(id)); for (String prop : joinProps) { criteria.setFetchMode(prop, FetchMode.JOIN); }/*from w w w . java 2s . co m*/ criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return (T) criteria.uniqueResult(); }
From source file:org.grouter.domain.dao.spring.GenericHibernateDAO.java
License:Apache License
@SuppressWarnings("unchecked") public T findById(Class clazz, ID id, String... joinProps) { Criteria criteria = getSession().createCriteria(clazz); criteria.add(Restrictions.idEq(id)); for (String prop : joinProps) { criteria.setFetchMode(prop, FetchMode.JOIN); }/*w ww. j a va 2 s . c o m*/ criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return (T) criteria.uniqueResult(); }
From source file:org.grouter.domain.dao.spring.GenericHibernateDAO.java
License:Apache License
public List<T> findAllUsingFetchMode(final Class clazz, final FetchMode fetchMode, final String... joinProps) { Criteria criteria = getSession().createCriteria(clazz); for (String disJoinProp : joinProps) { criteria.setFetchMode(disJoinProp, fetchMode); }/* ww w .jav a 2s .co m*/ criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return (List<T>) criteria.list(); }
From source file:org.grouter.domain.dao.spring.GenericHibernateDAO.java
License:Apache License
@SuppressWarnings("unchecked") public T findById(final Class clazz, final T id, final String... joinProps) { Criteria criteria = getSession().createCriteria(clazz); criteria.add(Restrictions.idEq(id)); for (String prop : joinProps) { criteria.setFetchMode(prop, FetchMode.JOIN); }//from w w w . j a va 2 s . c o m criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return (T) criteria.uniqueResult(); }
From source file:org.linagora.linshare.core.repository.hibernate.UploadRequestGroupRepositoryImpl.java
License:Open Source License
@Override public List<UploadRequestGroup> findAllByOwner(Account owner) { DetachedCriteria cri = DetachedCriteria.forClass(UploadRequest.class); cri.add(Restrictions.eq("owner", owner)); cri.setProjection(Projections.property("uploadRequestGroup")); cri.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return findByCriteria(cri); }
From source file:org.molasdin.wbase.hibernate.BasicHibernateRepository.java
License:Apache License
@Override public List<T> allAtOnce(final String orderProp, final Order order) { return support().run(new org.molasdin.wbase.transaction.Transactional<HibernateEngine, List<T>>() { @Override/*from ww w. j ava2s.c o m*/ public List<T> run(Transaction<HibernateEngine> tx) throws Exception { Criteria criteria = tx.engine().session().createCriteria(clazz); criteria.addOrder(order == Order.ASC ? org.hibernate.criterion.Order.asc(orderProp) : org.hibernate.criterion.Order.desc(orderProp)); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return tx.engine().invokeCriteriaForList(criteria, clazz); } }); }
From source file:org.openhealthtools.openatna.audit.persistence.dao.hibernate.AbstractHibernateDao.java
License:Apache License
protected List<? extends E> all(int offset, int amount) { Criteria messageCriteria = criteria(); Criteria idCriteria = criteria().setProjection(Projections.id()) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).addOrder(Order.asc("id")) .setFirstResult(offset).setMaxResults(amount); List<Long> ids = idCriteria.list(); if (ids == null || ids.size() == 0) { return new ArrayList<E>(); }// ww w . j a v a2 s. c o m if (ids.size() == 1) { messageCriteria.add(Restrictions.eq("id", ids.get(0))); } else { messageCriteria.add(Restrictions.in("id", ids)); } return list(messageCriteria); }
From source file:org.openhealthtools.openatna.audit.persistence.dao.hibernate.HibernateQueryBuilder.java
License:Apache License
/** * NOTE: HAVE TO USE TWO QUERIES HERE. There is NO way around that I can see to ensure getting * back both distinct, and correct max results restrictions. * * @param query/*from w w w .ja v a 2s . c o m*/ * @return */ public Criteria build(Query query) { Map<Query.Target, Set<Query.ConditionalStatement>> map = query.getConditionals(); CriteriaNode root = new CriteriaNode(idCriteria, "MESSAGE"); idCriteria.setProjection(Projections.id()); Set<Query.Target> targets = map.keySet(); for (Query.Target target : targets) { Query.TargetPath tp = Query.createPath(target); CriteriaNode node = getNode(root, tp); Set<Query.ConditionalStatement> values = map.get(target); for (Query.ConditionalStatement value : values) { createConditional(root, node, value, tp.getTarget()); } } idCriteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); idCriteria.addOrder(Order.asc("id")); List<Long> ids = idCriteria.list(); if (ids == null || ids.size() == 0) { return null; } if (ids.size() == 1) { messageCriteria.add(Restrictions.eq("id", ids.get(0))); } else { messageCriteria.add(Restrictions.in("id", ids)); } return messageCriteria; }