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
participants (1)
-
echatellier@users.nuiton.org