private Query createQueryForUuidAndTitleCache(Integer limit, UUID classificationUuid, String pattern, boolean includeDoubtful){\r
String doubtfulPattern = "";\r
String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("\r
- + " node.uuid, node.id, t.titleCache, rank, parent.uuid"\r
+ + " node.uuid, node.id, node.treeIndex, t.uuid, t.titleCache, rank, parent.uuid"\r
+ ") "\r
+ " FROM TaxonNode AS node "\r
+ " JOIN node.taxon as t " // FIXME why not inner join here?\r
public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {\r
\r
String queryString = getTaxonNodeDtoQuery();\r
- queryString += " WHERE t.uuid LIKE :uuid ";\r
+ queryString += " WHERE tn.uuid = :uuid ";\r
Query query = getSession().createQuery(queryString);\r
- query.setParameter("uuid", nodeUuid.toString());\r
+ query.setParameter("uuid", nodeUuid);\r
\r
@SuppressWarnings("unchecked")\r
List<SortableTaxonNodeQueryResult> result = query.list();\r
*/\r
private String getTaxonNodeDtoQuery() {\r
String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("\r
- + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank, p.uuid "\r
+ + "tn.uuid, tn.id, tn.treeIndex, t.uuid, t.titleCache, name.titleCache, rank, p.uuid "\r
+ ") "\r
+ " FROM TaxonNode tn "\r
+ " INNER JOIN tn.taxon AS t "\r
List<TaxonNodeDto> nodeDtos = new ArrayList<>();\r
Collections.sort(result, new SortableTaxonNodeQueryResultComparator());\r
for(SortableTaxonNodeQueryResult queryDTO : result){\r
- TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex(), queryDTO.getParentNodeUuid());\r
+ TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTreeIndex(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex(), queryDTO.getParentNodeUuid());\r
nodeDtos.add(nodeDto);\r
}\r
return nodeDtos;\r