Project

General

Profile

« Previous | Next » 

Revision c61c9db0

Added by Katja Luther over 2 years ago

code cleaning, move hql queries to dao

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImpl.java
1183 1183
    @Override
1184 1184
    public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {
1185 1185
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1186
                + "tn.uuid, tn.id, t.titleCache, rank "
1186
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1187 1187
                + ") "
1188 1188
                + " FROM TaxonNode tn "
1189 1189
                + "   INNER JOIN tn.taxon AS t "
......
1203 1203

  
1204 1204
        List<TaxonNodeDto> list = new ArrayList<>();
1205 1205
        for(SortableTaxonNodeQueryResult queryDTO : result){
1206
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTaxonTitleCache()));
1206
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache()));
1207 1207
        }
1208 1208
        return list.get(0);
1209 1209
    }
......
1211 1211
    @Override
1212 1212
    public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {
1213 1213
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1214
                + "tn.uuid, tn.id, t.titleCache, rank "
1214
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1215 1215
                + ") "
1216 1216
                + " FROM TaxonNode tn "
1217 1217
                + "   INNER JOIN tn.taxon AS t "
......
1232 1232

  
1233 1233
        List<TaxonNodeDto> list = new ArrayList<>();
1234 1234
        for(SortableTaxonNodeQueryResult queryDTO : result){
1235
            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());
1235
            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());
1236 1236

  
1237 1237
            list.add(nodeDto);
1238 1238
        }
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
22 22
import java.util.stream.Collectors;
23 23

  
24 24
import org.apache.log4j.Logger;
25
import org.hibernate.Query;
26 25
import org.springframework.beans.factory.annotation.Autowired;
27 26
import org.springframework.security.core.Authentication;
28 27
import org.springframework.stereotype.Service;
......
90 89
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao;
91 90
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeFilterDao;
92 91
import eu.etaxonomy.cdm.persistence.dto.HomotypicGroupDto;
93
import eu.etaxonomy.cdm.persistence.dto.SortableTaxonNodeQueryResult;
94
import eu.etaxonomy.cdm.persistence.dto.SortableTaxonNodeQueryResultComparator;
95 92
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
96 93
import eu.etaxonomy.cdm.persistence.permission.ICdmPermissionEvaluator;
97 94
import eu.etaxonomy.cdm.persistence.query.OrderHint;
......
1449 1446

  
1450 1447
    @Override
1451 1448
    public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {
1452
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1453
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1454
                + ") "
1455
                + " FROM TaxonNode tn "
1456
                + "   INNER JOIN tn.taxon AS t "
1457
                + "   INNER JOIN t.name AS name "
1458
                + "   LEFT OUTER JOIN name.rank AS rank "
1459
                + " WHERE t.uuid LIKE :uuid ";
1460

  
1461

  
1462
        Query query =  getSession().createQuery(queryString);
1463

  
1464
        query.setParameter("uuid", nodeUuid.toString());
1465

  
1466

  
1467
        @SuppressWarnings("unchecked")
1468
        List<SortableTaxonNodeQueryResult> result = query.list();
1469
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1470

  
1471
        List<TaxonNodeDto> list = new ArrayList<>();
1472
        for(SortableTaxonNodeQueryResult queryDTO : result){
1473
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache()));
1474
        }
1475
        return list.get(0);
1449
        return dao.getTaxonNodeDto(nodeUuid);
1476 1450
    }
1477 1451

  
1478 1452
    @Override
1479 1453
    public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {
1480
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1481
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1482
                + ") "
1483
                + " FROM TaxonNode tn "
1484
                + "   INNER JOIN tn.taxon AS t "
1485
                + "   INNER JOIN t.name AS name "
1486
                + "   LEFT OUTER JOIN name.rank AS rank "
1487
                + " WHERE t.uuid IN (:uuid) ";
1488

  
1489

  
1490
        Query query =  getSession().createQuery(queryString);
1491
//        List<String> uuidStrings = nodeUuids.stream().map(e -> e.toString()).collect(Collectors.toList());
1492

  
1493
        query.setParameterList("uuid", nodeUuids);
1494

  
1495

  
1496
        @SuppressWarnings("unchecked")
1497
        List<SortableTaxonNodeQueryResult> result = query.list();
1498
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1499

  
1500
        List<TaxonNodeDto> list = new ArrayList<>();
1501
        for(SortableTaxonNodeQueryResult queryDTO : result){
1502
            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());
1503

  
1504
            list.add(nodeDto);
1505
        }
1506
        return list;
1454
        return dao.getTaxonNodeDtos(nodeUuids);
1507 1455
    }
1508 1456
}

Also available in: Unified diff