Bonjour. J'ai ajouté une méthode create() sur le DAO qui prend une entité en paramètres. Bizarrement elle n'existait pas. Y a-t-il une raison a son absence ? Le but est de faire ce genre de code : Account myAccount = new AccountImpl() [...] myAccount = accoutDAO.create(myAccount); PS: normalement, il n'y a pas de conflit avec la methode create(Object...) mais ca aurait pu. Le 22/03/2010 18:34, echatellier@users.nuiton.org a écrit :
Author: echatellier Date: 2010-03-22 18:34:41 +0100 (Mon, 22 Mar 2010) New Revision: 1851
Log: Ajout d'une methode create(TopiaEntity) sur le DAO.
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2010-03-22 10:43:24 UTC (rev 1850) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAO.java 2010-03-22 17:34:41 UTC (rev 1851) @@ -110,6 +110,18 @@ Entity create(Map<String, Object> properties) throws TopiaException;
/** + * Permet de sauver un object instancié sans le DAO. + * + * @param e l'entité instanciée à sauver + * @return l'entité avec son topiaID valorisé + * @throws TopiaException + * + * @since 2.3.1 + * @throw TopiaException if any pb while creating datas + */ + Entity create(Entity e) throws TopiaException; + + /** * Permet d'ajouter ou de mettre a jour un objet. Cela permet d'ajouter * par exemple un objet provenant d'un autre context mais du meme type * de DAO @@ -119,6 +131,11 @@ */ Entity update(Entity e) throws TopiaException;
+ /** + * Permet de supprimer + * @param e + * @throws TopiaException + */ void delete(Entity e) throws TopiaException;
Entity findByTopiaId(String k) throws TopiaException;
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2010-03-22 10:43:24 UTC (rev 1850) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDAOImpl.java 2010-03-22 17:34:41 UTC (rev 1851) @@ -675,6 +675,26 @@ getContext().removeTopiaEntityVetoable(entityClass, vetoable); }
+ @Override + public E create(E entity) throws TopiaException { + + // TODO EC-20100322 this code may be merged with other create() methods + try { + // first set topiaId + String topiaId = TopiaId.create(entityClass); + TopiaEntityAbstract entityAbstract = (TopiaEntityAbstract) entity; + entityAbstract.setTopiaId(topiaId); + entityAbstract.setTopiaContext(getContext()); + + // save entity + getSession().save(entity); + getContext().getFiresSupport().warnOnUpdateEntity(entity); + return entity; + } catch (HibernateException eee) { + throw new TopiaException(eee); + } + } + /** * Cette methode appelle fireVetoableCreate et fireOnCreated * Si vous la surchargé, faites attention a appeler le super
_______________________________________________ Topia-commits mailing list Topia-commits@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/topia-commits
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com