diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/IOrderElementTemplateDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/IOrderElementTemplateDAO.java index 479aa3458..259d7c168 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/IOrderElementTemplateDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/IOrderElementTemplateDAO.java @@ -19,6 +19,8 @@ */ package org.navalplanner.business.templates.daos; +import java.util.List; + import org.navalplanner.business.common.daos.IGenericDAO; import org.navalplanner.business.templates.entities.OrderElementTemplate; @@ -29,4 +31,6 @@ import org.navalplanner.business.templates.entities.OrderElementTemplate; public interface IOrderElementTemplateDAO extends IGenericDAO { + List getRootTemplates(); + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/OrderElementTemplateDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/OrderElementTemplateDAO.java index b5fd4b696..5218b5c51 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/OrderElementTemplateDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/templates/daos/OrderElementTemplateDAO.java @@ -19,11 +19,15 @@ */ package org.navalplanner.business.templates.daos; +import java.util.List; + +import org.hibernate.Query; import org.navalplanner.business.common.daos.GenericDAOHibernate; import org.navalplanner.business.templates.entities.OrderElementTemplate; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; /** @@ -36,4 +40,13 @@ public class OrderElementTemplateDAO extends GenericDAOHibernate implements IOrderElementTemplateDAO { + @Override + @Transactional(readOnly = true) + @SuppressWarnings("unchecked") + public List getRootTemplates() { + Query query = getSession().createQuery( + "select t from OrderElementTemplate t where t.parent = NULL"); + return query.list(); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/IOrderTemplatesModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/IOrderTemplatesModel.java index ed40955b7..f5e7abac3 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/IOrderTemplatesModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/IOrderTemplatesModel.java @@ -30,7 +30,7 @@ import org.navalplanner.business.templates.entities.OrderElementTemplate; */ public interface IOrderTemplatesModel { - List getTemplates(); + List getRootTemplates(); void createTemplateFrom(OrderElement orderElement); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesController.java index e3e2a621d..191886d0b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesController.java @@ -59,7 +59,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements private IURLHandlerRegistry handlerRegistry; public List getTemplates() { - return model.getTemplates(); + return model.getRootTemplates(); } private OnlyOneVisible getVisibility() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesModel.java index bb5997dd7..24848f6c9 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/templates/OrderTemplatesModel.java @@ -53,8 +53,8 @@ public class OrderTemplatesModel implements IOrderTemplatesModel { private OrderElementTemplate template; @Override - public List getTemplates() { - return dao.list(OrderElementTemplate.class); + public List getRootTemplates() { + return dao.getRootTemplates(); } @Override