Revision 9169740e
Added by Andreas Müller almost 2 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImpl.java | ||
---|---|---|
22 | 22 |
import java.util.Set; |
23 | 23 |
import java.util.UUID; |
24 | 24 |
|
25 |
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger; |
|
25 |
import org.apache.logging.log4j.LogManager; |
|
26 |
import org.apache.logging.log4j.Logger; |
|
26 | 27 |
import org.hibernate.Criteria; |
27 | 28 |
import org.hibernate.Hibernate; |
28 | 29 |
import org.hibernate.criterion.Projections; |
... | ... | |
931 | 932 |
if (relTypeUuids != null && !relTypeUuids.isEmpty()){ |
932 | 933 |
query.setParameterList("relTypeUuid", relTypeUuids); |
933 | 934 |
} |
934 |
@SuppressWarnings("unchecked") |
|
935 |
|
|
935 | 936 |
List<List<Integer>> partitionList = splitIdList(query.list(), DEFAULT_SET_SUBTREE_PARTITION_SIZE); |
936 | 937 |
for (List<Integer> taxonIdList : partitionList){ |
937 | 938 |
@SuppressWarnings({ "unchecked", "rawtypes" }) |
... | ... | |
1111 | 1112 |
if (pattern != null && !pattern.equals("?")){ |
1112 | 1113 |
query.setParameter("pattern", pattern); |
1113 | 1114 |
} |
1114 |
@SuppressWarnings("unchecked") |
|
1115 |
|
|
1115 | 1116 |
List<SortableTaxonNodeQueryResult> resultClassifications = query.list(); |
1116 | 1117 |
|
1117 | 1118 |
result.addAll(resultClassifications); |
... | ... | |
1173 | 1174 |
+ ") " |
1174 | 1175 |
+ " FROM TaxonNode p " |
1175 | 1176 |
+ " INNER JOIN p.childNodes AS tn" |
1176 |
+ " INNER JOIN tn.taxon AS t "
|
|
1177 |
+ " INNER JOIN tn.taxon AS t " |
|
1177 | 1178 |
+ " INNER JOIN t.name AS name " |
1178 | 1179 |
+ " INNER JOIN tn.classification AS cl " |
1179 | 1180 |
+ " LEFT OUTER JOIN tn.statusNote as note " |
1180 | 1181 |
+ " LEFT OUTER JOIN name.rank AS rank "; |
1181 | 1182 |
return queryString; |
1182 | 1183 |
} |
1183 |
|
|
1184 |
|
|
1184 | 1185 |
public String getTaxonNodeDtoQueryWithoutParent() { |
1185 | 1186 |
String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "(" |
1186 | 1187 |
+ "tn.uuid, tn.id, t.titleCache"// rank " |
1187 |
|
|
1188 |
|
|
1188 | 1189 |
// + "tn.uuid, tn.id, t.uuid, t.titleCache, name.titleCache, rank, cl.uuid, t.publish, tn.status, note " |
1189 | 1190 |
+ ") " |
1190 | 1191 |
+ " FROM TaxonNode tn " |
1191 |
+ " LEFT JOIN tn.taxon AS t " ;
|
|
1192 |
+ " LEFT JOIN tn.taxon AS t " ; |
|
1192 | 1193 |
// + " LEFT JOIN t.name AS name " |
1193 | 1194 |
// + " INNER JOIN tn.classification AS cl "; |
1194 | 1195 |
// + " LEFT OUTER JOIN tn.statusNote as note "; |
1195 | 1196 |
// + " LEFT OUTER JOIN name.rank AS rank "; |
1196 | 1197 |
return queryString; |
1197 | 1198 |
} |
1198 |
|
|
1199 |
|
|
1199 |
|
|
1200 |
|
|
1200 | 1201 |
|
1201 | 1202 |
@Override |
1202 | 1203 |
public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) { |
... | ... | |
1212 | 1213 |
|
1213 | 1214 |
return list; |
1214 | 1215 |
} |
1215 |
|
|
1216 |
|
|
1216 | 1217 |
@Override |
1217 | 1218 |
public List<TaxonNodeDto> getTaxonNodeDtosWithoutParent(List<UUID> nodeUuids) { |
1218 | 1219 |
String queryString = getTaxonNodeDtoQueryWithoutParent(); |
... | ... | |
1240 | 1241 |
if (subTreeIndex != null) { |
1241 | 1242 |
query.setParameter("subTreeIndex", subTreeIndex); |
1242 | 1243 |
} |
1243 |
|
|
1244 |
|
|
1244 | 1245 |
List<SortableTaxonNodeQueryResult> result = query.list(); |
1245 | 1246 |
List<TaxonNodeDto> list = createNodeDtos(result); |
1246 | 1247 |
if (list.isEmpty()) { |
... | ... | |
1293 | 1294 |
return getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, limit, pattern, searchForClassifications, false); |
1294 | 1295 |
} |
1295 | 1296 |
|
1296 |
|
|
1297 |
|
|
1297 | 1298 |
} |
Also available in: Unified diff
ref #10076 fix HQL query (remove native)