code cleaning, move hql queries to dao
authorKatja Luther <k.luther@bgbm.org>
Tue, 5 Oct 2021 07:57:15 +0000 (09:57 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 5 Oct 2021 07:57:55 +0000 (09:57 +0200)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java

index 6ec460da6b32c016023b7f5dcf3160f441c0256d..44edf817ec8697d609233ddde8b3dade457be8ea 100755 (executable)
@@ -1183,7 +1183,7 @@ public class TaxonNodeDaoHibernateImpl extends AnnotatableDaoImpl<TaxonNode>
     @Override\r
     public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {\r
         String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("\r
-                + "tn.uuid, tn.id, t.titleCache, rank "\r
+                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "\r
                 + ") "\r
                 + " FROM TaxonNode tn "\r
                 + "   INNER JOIN tn.taxon AS t "\r
@@ -1203,7 +1203,7 @@ public class TaxonNodeDaoHibernateImpl extends AnnotatableDaoImpl<TaxonNode>
 \r
         List<TaxonNodeDto> list = new ArrayList<>();\r
         for(SortableTaxonNodeQueryResult queryDTO : result){\r
-            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTaxonTitleCache()));\r
+            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache()));\r
         }\r
         return list.get(0);\r
     }\r
@@ -1211,7 +1211,7 @@ public class TaxonNodeDaoHibernateImpl extends AnnotatableDaoImpl<TaxonNode>
     @Override\r
     public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {\r
         String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("\r
-                + "tn.uuid, tn.id, t.titleCache, rank "\r
+                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "\r
                 + ") "\r
                 + " FROM TaxonNode tn "\r
                 + "   INNER JOIN tn.taxon AS t "\r
@@ -1232,7 +1232,7 @@ public class TaxonNodeDaoHibernateImpl extends AnnotatableDaoImpl<TaxonNode>
 \r
         List<TaxonNodeDto> list = new ArrayList<>();\r
         for(SortableTaxonNodeQueryResult queryDTO : result){\r
-            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());\r
+            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());\r
 \r
             list.add(nodeDto);\r
         }\r
index 0048832362a768e5918cd6c3b0f05f8de8cd26fb..9d13ecf99caa4950825b62f5fb3db0353bda2739 100644 (file)
@@ -22,7 +22,6 @@ import java.util.UUID;
 import java.util.stream.Collectors;
 
 import org.apache.log4j.Logger;
-import org.hibernate.Query;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.stereotype.Service;
@@ -90,8 +89,6 @@ import eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao;
 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao;
 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeFilterDao;
 import eu.etaxonomy.cdm.persistence.dto.HomotypicGroupDto;
-import eu.etaxonomy.cdm.persistence.dto.SortableTaxonNodeQueryResult;
-import eu.etaxonomy.cdm.persistence.dto.SortableTaxonNodeQueryResultComparator;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.permission.ICdmPermissionEvaluator;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
@@ -1449,60 +1446,11 @@ public class TaxonNodeServiceImpl
 
     @Override
     public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {
-        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
-                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
-                + ") "
-                + " FROM TaxonNode tn "
-                + "   INNER JOIN tn.taxon AS t "
-                + "   INNER JOIN t.name AS name "
-                + "   LEFT OUTER JOIN name.rank AS rank "
-                + " WHERE t.uuid LIKE :uuid ";
-
-
-        Query query =  getSession().createQuery(queryString);
-
-        query.setParameter("uuid", nodeUuid.toString());
-
-
-        @SuppressWarnings("unchecked")
-        List<SortableTaxonNodeQueryResult> result = query.list();
-        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
-
-        List<TaxonNodeDto> list = new ArrayList<>();
-        for(SortableTaxonNodeQueryResult queryDTO : result){
-            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache()));
-        }
-        return list.get(0);
+        return dao.getTaxonNodeDto(nodeUuid);
     }
 
     @Override
     public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {
-        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
-                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
-                + ") "
-                + " FROM TaxonNode tn "
-                + "   INNER JOIN tn.taxon AS t "
-                + "   INNER JOIN t.name AS name "
-                + "   LEFT OUTER JOIN name.rank AS rank "
-                + " WHERE t.uuid IN (:uuid) ";
-
-
-        Query query =  getSession().createQuery(queryString);
-//        List<String> uuidStrings = nodeUuids.stream().map(e -> e.toString()).collect(Collectors.toList());
-
-        query.setParameterList("uuid", nodeUuids);
-
-
-        @SuppressWarnings("unchecked")
-        List<SortableTaxonNodeQueryResult> result = query.list();
-        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
-
-        List<TaxonNodeDto> list = new ArrayList<>();
-        for(SortableTaxonNodeQueryResult queryDTO : result){
-            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());
-
-            list.add(nodeDto);
-        }
-        return list;
+        return dao.getTaxonNodeDtos(nodeUuids);
     }
 }
\ No newline at end of file