/**
* @author cmathew
- * @date 1 Apr 2015
+ * @since 1 Apr 2015
*
*/
public class CdmQueryFactory {
public static final String DTYPE_COLUMN = "DTYPE";
- public static final String ID_COLUMN = "id";
- public static final String UUID_COLUMN = "uuid";
- public static final String CLASSIFICATION_COLUMN = "classification";
- public static final String RANK_COLUMN = "Rang";
- public static final String TAXON_COLUMN = "Taxon";
+ public static final String ID_COLUMN = "ID";
+ public static final String UUID_COLUMN = "UUID";
+ public static final String CLASSIFICATION_COLUMN = "CLASSIFICATION";
+ public static final String RANK_COLUMN = "RANK";
+ public static final String TAXON_COLUMN = "TAXON";
- public static final String ID = "id";
- public static final String UUID_ID = "uuid";
+ public static final String ID = "ID";
+ public static final String UUID_ID = "UUID";
public static QueryDelegate generateTaxonTreeQuery(String name_id, String classificationId) {
String FROM_QUERY = " FROM TaxonBase tb " +
}
}
String FROM_QUERY =
- "FROM TaxonName n "
+ " FROM TaxonName n "
+ "INNER JOIN TaxonBase tb on n.id = tb.name_id and tb.DTYPE='Taxon' " + // # name<->taxon
"INNER JOIN TaxonNode tn on tn.taxon_id = tb.id "+
"INNER JOIN DefinedTermBase rank on n.rank_id = rank.id "+// # rank <-> name
"LEFT OUTER JOIN DefinedTermBase statusTerm on statusTerm.id = descrEl.status_id "+
"LEFT OUTER JOIN DefinedTermBase area on area.id = descrEl.area_id ";
if(CdmUtils.isNotBlank(idString)){
- FROM_QUERY += "WHERE tn.id IN ("+ idString +") ";
+ FROM_QUERY += " WHERE tn.id IN ("+ idString +") ";
}
String GROUP_BY = " GROUP BY tb.uuid, tn.id ";
labels.put(label, count+1);
label += "("+count+")";
}
- SELECT_QUERY += "MAX( IF(area.uuid = '"+ namedArea.getUuid() +"', statusTerm.titleCache, NULL) ) as '"+ label +"'," ;
+ SELECT_QUERY += "MAX( IF(area.uuid = '"+ namedArea.getUuid() +"', statusTerm.uuid, NULL) ) as '"+ label +"'," ;
}
SELECT_QUERY = StringUtils.stripEnd(SELECT_QUERY, ",")+" ";
SELECT_QUERY= SELECT_QUERY + FROM_QUERY + GROUP_BY + ORDER_BY;