Index: topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java diff -u topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.6 topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.7 --- topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java:1.6 Fri Feb 24 00:51:04 2006 +++ topia2/src/java/org/codelutin/topia/persistence/hibernate/TopiaDAOHibernate.java Fri Mar 17 15:10:36 2006 @@ -23,17 +23,20 @@ * * @author poussin * - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * - * Last update: $Date: 2006/02/24 00:51:04 $ by : $Author: thimel $ + * Last update: $Date: 2006/03/17 15:10:36 $ by : $Author: thimel $ */ package org.codelutin.topia.persistence.hibernate; import java.io.Serializable; +import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Map.Entry; +import org.apache.commons.collections.iterators.EntrySetMapIterator; import org.codelutin.topia.TopiaException; import org.codelutin.topia.persistence.TopiaDAOAbstract; import org.codelutin.topia.persistence.TopiaEntity; @@ -150,7 +153,7 @@ //La manière de faire suivante évite l'exception levée par // uniqueResult lorsqu'il y a plus d'un résultat criteria.setMaxResults(1); - List results = criteria.list(); + List results = (List)criteria.list(); if (results.size() > 0) { return (Entity)results.get(0); } else { @@ -169,13 +172,56 @@ try { Criteria criteria = createCriteria(FlushMode.AUTO); criteria.add(Restrictions.allEq(properties)); - List result = (List) criteria.list(); + List result = (List)criteria.list(); return result; } catch (HibernateException eee) { throw new TopiaException(eee); } } +//FIXME : Commenté car impossible de trouver le bon Criterion + +// /* (non-Javadoc) +// * @see org.codelutin.topia.persistence.TopiaDAO#findContainsProperties(java.util.Map) +// */ +// public Entity findContainsProperties(Map properties) throws TopiaException { +// try { +// Criteria criteria = createCriteria(FlushMode.AUTO); +// for (Entry entry : properties.entrySet()) { +// for (Object value : entry.getValue()) { +// criteria.add(Restrictions.eq(entry.getKey(), value)); +// } +// } +// criteria.setMaxResults(1); +// List results = (List)criteria.list(); +// if (results.size() > 0) { +// return (Entity)results.get(0); +// } else { +// return null; +// } +// } catch (HibernateException eee) { +// throw new TopiaException(eee); +// } +// } +// +// /* (non-Javadoc) +// * @see org.codelutin.topia.persistence.TopiaDAO#findAllContainsProperties(java.util.Map) +// */ +// public List findAllContainsProperties(Map properties) throws TopiaException { +// try { +// Criteria criteria = createCriteria(FlushMode.AUTO); +// for (Entry entry : properties.entrySet()) { +// for (Object value : entry.getValue()) { +// criteria.add(Restrictions.eq(entry.getKey(), value)); +// } +// } +// List result = (List)criteria.list(); +// return result; +// } catch (HibernateException eee) { +// throw new TopiaException(eee); +// } +// } + /** * Renvoie un Criteria créé avec l'entityClass * @param mode le FlushMode du Criteria