Revision e1fef636
Added by Katja Luther over 2 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptiveDataSetDao.java | ||
---|---|---|
24 | 24 |
import eu.etaxonomy.cdm.model.description.DescriptiveSystemRole; |
25 | 25 |
import eu.etaxonomy.cdm.model.description.Feature; |
26 | 26 |
import eu.etaxonomy.cdm.model.description.QuantitativeData; |
27 |
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao; |
|
27 | 28 |
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptiveDataSetDao; |
28 | 29 |
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase; |
29 | 30 |
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao; |
30 | 31 |
import eu.etaxonomy.cdm.persistence.dao.term.IDefinedTermDao; |
31 | 32 |
import eu.etaxonomy.cdm.persistence.dao.term.ITermTreeDao; |
32 |
import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto; |
|
33 |
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto; |
|
34 |
import eu.etaxonomy.cdm.persistence.dto.TermDto; |
|
35 |
import eu.etaxonomy.cdm.persistence.dto.TermTreeDto; |
|
36 | 33 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
37 | 34 |
|
38 | 35 |
@Repository |
... | ... | |
51 | 48 |
@Autowired |
52 | 49 |
private ITaxonNodeDao nodeDao; |
53 | 50 |
|
51 |
@Autowired |
|
52 |
private IDescriptionDao descriptionDao; |
|
53 |
|
|
54 | 54 |
public DescriptiveDataSetDao() { |
55 | 55 |
super(DescriptiveDataSet.class); |
56 | 56 |
} |
... | ... | |
240 | 240 |
return list; |
241 | 241 |
} |
242 | 242 |
|
243 |
private List<UUID> getDescriptionUuidsForDescriptiveDataSet(UUID uuid) { |
|
244 |
Session session = getSession(); |
|
243 | 245 |
|
246 |
String queryString = "SELECT t.uuid FROM DescriptiveDataSet a JOIN a.descriptions as t WHERE a.uuid = :uuid"; |
|
244 | 247 |
|
245 |
@Override |
|
246 |
public DescriptiveDataSetBaseDto getDescriptiveDataSetDtoByUuid(UUID uuid) { |
|
247 |
String queryString = DescriptiveDataSetBaseDto.getDescriptiveDataSetDtoSelect() |
|
248 |
+ " WHERE a.uuid = :uuid" |
|
249 |
+ " ORDER BY a.titleCache"; |
|
250 |
Query query = getSession().createQuery(queryString); |
|
248 |
|
|
249 |
Query query; |
|
250 |
query = session.createQuery(queryString); |
|
251 | 251 |
query.setParameter("uuid", uuid); |
252 | 252 |
|
253 |
@SuppressWarnings("unchecked") |
|
254 |
List<Object[]> result = query.list(); |
|
255 | 253 |
|
256 |
List<DescriptiveDataSetBaseDto> list = DescriptiveDataSetBaseDto.descriptiveDataSetBaseDtoListFrom(result); |
|
257 |
UUID descriptiveSystemUuid = null; |
|
258 |
UUID minRankUuid = null; |
|
259 |
UUID maxRankUuid = null; |
|
260 |
if (result != null && !result.isEmpty()){ |
|
261 |
Object[] descriptiveDataSetResult = result.get(0); |
|
262 |
descriptiveSystemUuid = (UUID)descriptiveDataSetResult[4]; |
|
263 |
minRankUuid = (UUID)descriptiveDataSetResult[5]; |
|
264 |
maxRankUuid = (UUID)descriptiveDataSetResult[6]; |
|
265 |
}else{ |
|
266 |
return null; |
|
267 |
} |
|
268 |
//get descriptiveSystem |
|
269 |
DescriptiveDataSetBaseDto dto = list.get(0); |
|
270 |
if (descriptiveSystemUuid != null){ |
|
271 |
TermTreeDto treeDto = termTreeDao.getTermTreeDtosByUuid(descriptiveSystemUuid); |
|
272 |
dto.setDescriptiveSystem(treeDto); |
|
254 |
@SuppressWarnings("unchecked") |
|
255 |
List<UUID> result = query.list(); |
|
256 |
List<UUID> list = new ArrayList<>(); |
|
257 |
for(UUID object : result){ |
|
258 |
list.add(object); |
|
273 | 259 |
} |
274 |
//get taxon nodes |
|
275 |
List<UUID> nodeUuids = getNodeUuidsForDescriptiveDataSet(uuid); |
|
276 |
List<TaxonNodeDto> nodeDtos = nodeDao.getTaxonNodeDtos(nodeUuids); |
|
277 |
Set<TaxonNodeDto> nodeSet = new HashSet<>(nodeDtos); |
|
278 |
dto.setSubTreeFilter(nodeSet); |
|
279 |
|
|
280 |
TermDto minRank = termDao.getTermDto(minRankUuid); |
|
281 |
TermDto maxRank = termDao.getTermDto(maxRankUuid); |
|
282 |
dto.setMaxRank(maxRank); |
|
283 |
dto.setMinRank(minRank); |
|
284 |
return dto; |
|
260 |
|
|
261 |
return list; |
|
285 | 262 |
} |
263 |
|
|
264 |
|
|
265 |
|
|
266 |
|
|
267 |
// @Override |
|
268 |
// public DescriptiveDataSetBaseDto getDescriptiveDataSetDtoByUuid(UUID uuid) { |
|
269 |
// String queryString = DescriptiveDataSetBaseDto.getDescriptiveDataSetDtoSelect() |
|
270 |
// + " WHERE a.uuid = :uuid" |
|
271 |
// + " ORDER BY a.titleCache"; |
|
272 |
// Query query = getSession().createQuery(queryString); |
|
273 |
// query.setParameter("uuid", uuid); |
|
274 |
// |
|
275 |
// @SuppressWarnings("unchecked") |
|
276 |
// List<Object[]> result = query.list(); |
|
277 |
// |
|
278 |
// List<DescriptiveDataSetBaseDto> list = DescriptiveDataSetBaseDto.descriptiveDataSetBaseDtoListFrom(result); |
|
279 |
// UUID descriptiveSystemUuid = null; |
|
280 |
// UUID minRankUuid = null; |
|
281 |
// UUID maxRankUuid = null; |
|
282 |
// if (result != null && !result.isEmpty()){ |
|
283 |
// Object[] descriptiveDataSetResult = result.get(0); |
|
284 |
// descriptiveSystemUuid = (UUID)descriptiveDataSetResult[4]; |
|
285 |
// minRankUuid = (UUID)descriptiveDataSetResult[5]; |
|
286 |
// maxRankUuid = (UUID)descriptiveDataSetResult[6]; |
|
287 |
// }else{ |
|
288 |
// return null; |
|
289 |
// } |
|
290 |
// //get descriptiveSystem |
|
291 |
// DescriptiveDataSetBaseDto dto = list.get(0); |
|
292 |
// if (descriptiveSystemUuid != null){ |
|
293 |
// TermTreeDto treeDto = termTreeDao.getTermTreeDtosByUuid(descriptiveSystemUuid); |
|
294 |
// dto.setDescriptiveSystem(treeDto); |
|
295 |
// } |
|
296 |
// //get taxon nodes |
|
297 |
// List<UUID> nodeUuids = getNodeUuidsForDescriptiveDataSet(uuid); |
|
298 |
// List<TaxonNodeDto> nodeDtos = nodeDao.getTaxonNodeDtos(nodeUuids); |
|
299 |
// Set<TaxonNodeDto> nodeSet = new HashSet<>(nodeDtos); |
|
300 |
// dto.setSubTreeFilter(nodeSet); |
|
301 |
// |
|
302 |
// List<UUID> descriptionUuidList = getDescriptionUuidsForDescriptiveDataSet(uuid); |
|
303 |
// Set<UUID> descriptionUuids = new HashSet<>(descriptionUuidList); |
|
304 |
// dto.setDescriptionUuids(descriptionUuids); |
|
305 |
// |
|
306 |
// TermDto minRank = termDao.getTermDto(minRankUuid); |
|
307 |
// TermDto maxRank = termDao.getTermDto(maxRankUuid); |
|
308 |
// dto.setMaxRank(maxRank); |
|
309 |
// dto.setMinRank(minRank); |
|
310 |
// return dto; |
|
311 |
// } |
|
286 | 312 |
} |
Also available in: Unified diff
ref #9772: fix getting taxonRowWrapper