diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java index 9c305a19d..75ed24121 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/AdvanceTypeDAO.java @@ -1,6 +1,5 @@ package org.navalplanner.business.advance.daos; -import org.hibernate.HibernateException; import org.hibernate.criterion.Restrictions; import org.navalplanner.business.advance.entities.AdvanceType; import org.navalplanner.business.common.daos.GenericDAOHibernate; @@ -17,14 +16,8 @@ import org.springframework.stereotype.Repository; public class AdvanceTypeDAO extends GenericDAOHibernate implements IAdvanceTypeDAO { public boolean existsNameAdvanceType(String unitName) { - try { - return getSession().createCriteria(AdvanceType.class).add( Restrictions.eq("unitName", unitName)).uniqueResult() != null; - - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } } @Override diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java index 898b6d0b8..6f08162c2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/daos/IAdvanceTypeDAO.java @@ -12,4 +12,5 @@ public interface IAdvanceTypeDAO extends IGenericDAO{ public boolean existsNameAdvanceType(String unitName); public AdvanceType findByName(String name); + } \ No newline at end of file diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/GenericDAOHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/GenericDAOHibernate.java index 3c869e51d..932112e88 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/GenericDAOHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/GenericDAOHibernate.java @@ -6,7 +6,6 @@ import java.lang.reflect.ParameterizedType; import java.util.List; import org.apache.commons.lang.Validate; -import org.hibernate.HibernateException; import org.hibernate.LockMode; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -15,8 +14,6 @@ import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DataAccessException; -import org.springframework.orm.hibernate3.SessionFactoryUtils; /** * An implementation of IGenericDao based on Hibernate's native @@ -59,40 +56,19 @@ public class GenericDAOHibernate implements return sessionFactory.getCurrentSession(); } - protected DataAccessException convertHibernateAccessException( - HibernateException e) { - - return SessionFactoryUtils.convertHibernateAccessException(e); - - } - public void save(E entity) { - - try { - getSession().saveOrUpdate(entity); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } - + getSession().saveOrUpdate(entity); } public void reattachUnmodifiedEntity(E entity) { - try { - getSession().lock(entity, LockMode.NONE); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } + getSession().lock(entity, LockMode.NONE); } public E merge(E entity) { - try { - return entityClass.cast(getSession().merge(entity)); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } + return entityClass.cast(getSession().merge(entity)); } @@ -123,55 +99,36 @@ public class GenericDAOHibernate implements } /* Check version. */ - try { + Long versionValueInDB = (Long) getSession().createCriteria(entityClass) + .add(Restrictions.idEq(id)).setProjection( + Projections.property("version")).uniqueResult(); - Long versionValueInDB = (Long) - getSession().createCriteria(entityClass). - add(Restrictions.idEq(id)). - setProjection(Projections.property("version")). - uniqueResult(); + if (versionValueInDB == null) { + return; + } - if (versionValueInDB == null) { - return; - } - - if (!versionValueInMemory.equals(versionValueInDB)) { - throw new StaleObjectStateException(entityClass.getName(), id); - } - - } catch (HibernateException e) { - throw convertHibernateAccessException(e); + if (!versionValueInMemory.equals(versionValueInDB)) { + throw new StaleObjectStateException(entityClass.getName(), id); } } public void lock(E entity) { - try { - getSession().lock(entity, LockMode.UPGRADE); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } + getSession().lock(entity, LockMode.UPGRADE); } @SuppressWarnings("unchecked") public E find(PK id) throws InstanceNotFoundException { - try { + E entity = (E) getSession().get(entityClass, id); - E entity = (E) getSession().get(entityClass, id); - - if (entity == null) { - throw new InstanceNotFoundException(id, entityClass.getName()); - } - - return entity; - - } catch (HibernateException e) { - throw convertHibernateAccessException(e); + if (entity == null) { + throw new InstanceNotFoundException(id, entityClass.getName()); } + return entity; } public E findExistingEntity(PK id) { @@ -186,39 +143,25 @@ public class GenericDAOHibernate implements public boolean exists(final PK id) { - try { - - return getSession().createCriteria(entityClass). - add(Restrictions.idEq(id)). - setProjection(Projections.id()). - uniqueResult() != null; - - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } + return getSession().createCriteria(entityClass).add( + Restrictions.idEq(id)).setProjection(Projections.id()) + .uniqueResult() != null; } public void remove(PK id) throws InstanceNotFoundException { - - try { - getSession().delete(find(id)); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } - + getSession().delete(find(id)); } @SuppressWarnings("unchecked") @Override public List list(Class klass) { + return getSession().createCriteria(klass).list(); + } - try { - return getSession().createCriteria(klass).list(); - } catch (HibernateException e) { - throw convertHibernateAccessException(e); - } - + @Override + public void flush() { + getSession().flush(); } } 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 dc5891172..31825b402 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 @@ -108,4 +108,6 @@ public interface IGenericDAO { public List list(Class klass); + public void flush(); + } diff --git a/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml b/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml index 251c4dd8f..0dbe88ab3 100644 --- a/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml +++ b/navalplanner-business/src/main/resources/navalplanner-business-spring-config.xml @@ -12,6 +12,9 @@ + + +