Index: topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java diff -u topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.8 topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.9 --- topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.8 Wed Jun 7 15:56:01 2006 +++ topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java Fri Jul 21 00:49:16 2006 @@ -23,9 +23,9 @@ * * @author poussin * - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * - * Last update: $Date: 2006/06/07 15:56:01 $ by : $Author: thimel $ + * Last update: $Date: 2006/07/21 00:49:16 $ by : $Author: thimel $ */ package org.codelutin.topia.persistence.hibernate; @@ -40,10 +40,9 @@ import org.hibernate.Criteria; import org.hibernate.FlushMode; import org.hibernate.HibernateException; -import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.Criterion; -import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projection; import org.hibernate.criterion.Restrictions; /** @@ -183,6 +182,60 @@ } } + public List queryAll(Projection projection, Criterion criterion) throws TopiaException { + try { + Criteria criteria = createCriteria(FlushMode.AUTO); + criteria.setProjection(projection); + criteria.add(criterion); + List result = criteria.list(); + return result; + } catch (HibernateException eee) { + throw new TopiaException(eee); + } + } + + public Object query(Projection projection, Criterion criterion) throws TopiaException { + try { + Criteria criteria = createCriteria(FlushMode.AUTO); + criteria.setProjection(projection); + criteria.add(criterion); + criteria.setMaxResults(1); + List result = criteria.list(); + if (result != null && result.size() > 0) { + return result.get(0); + } + return null; + } catch (HibernateException eee) { + throw new TopiaException(eee); + } + } + + public Object project(Projection projection) throws TopiaException { + try { + Criteria criteria = createCriteria(FlushMode.AUTO); + criteria.setProjection(projection); + criteria.setMaxResults(1); + List result = criteria.list(); + if (result != null && result.size() > 0) { + return result.get(0); + } + return null; + } catch (HibernateException eee) { + throw new TopiaException(eee); + } + } + + public List projectAll(Projection projection) throws TopiaException { + try { + Criteria criteria = createCriteria(FlushMode.AUTO); + criteria.setProjection(projection); + List result = criteria.list(); + return result; + } catch (HibernateException eee) { + throw new TopiaException(eee); + } + } + //FIXME : Commenté car impossible de trouver le bon Criterion // /* (non-Javadoc)