From cf12b09255ad33da863c50a77dea681b0b9525f0 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Wed, 24 Jun 2009 14:00:28 +0200 Subject: [PATCH] ItEr13S15ProbasModuloRecursosItEr12S10: Adds merge method to GenericDAO --- .../navalplanner/business/common/daos/IGenericDao.java | 10 ++++++++++ .../business/common/daos/impl/GenericDaoHibernate.java | 4 ++++ .../common/daos/impl/GenericDaoHibernateTemplate.java | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java index 81eea1a35..913b69ebb 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java @@ -27,6 +27,16 @@ public interface IGenericDao { */ public void save(E entity); + /** + * Merges an entity, useful when saving an entity and a different object + * + * Unlike save, it does not launch an Exception if there is already a + * persistent instance with the same identifier in the session + * + * @param entity + */ + public E merge(E entity); + /** * It checks if the version of the instance passed as a parameter is equal * to the one in the database. The instance must have methods conforming to diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java index 471a68281..f227032d2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java @@ -77,6 +77,10 @@ public class GenericDaoHibernate implements } + public E merge(E entity) { + return entityClass.cast(getSession().merge(entity)); + } + public void checkVersion(E entity) { /* Get id and version from entity. */ diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java index 5887e7fd9..c12176d7c 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java @@ -62,6 +62,10 @@ public class GenericDaoHibernateTemplate implements hibernateTemplate.saveOrUpdate(entity); } + public E merge(E entity) { + return entityClass.cast(hibernateTemplate.merge(entity)); + } + public void checkVersion(E entity) { /* Get id and version from entity. */