Revision 79c29018
Added by Patrick Plitzner almost 6 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java | ||
---|---|---|
40 | 40 |
import eu.etaxonomy.cdm.model.name.NameRelationship; |
41 | 41 |
import eu.etaxonomy.cdm.model.name.NameRelationshipType; |
42 | 42 |
import eu.etaxonomy.cdm.model.name.Rank; |
43 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation; |
|
43 | 44 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus; |
44 | 45 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
45 | 46 |
import eu.etaxonomy.cdm.model.name.TypeDesignationBase; |
... | ... | |
359 | 360 |
return getTypeDesignations(name, null, status, pageSize, pageNumber, propertyPaths); |
360 | 361 |
} |
361 | 362 |
|
363 |
@Override |
|
364 |
public List<Integer> getTypeSpecimenIdsForTaxonName(TaxonName name, |
|
365 |
TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber){ |
|
366 |
Query query = getTypeDesignationQuery("designation.typeSpecimen.id", name, SpecimenTypeDesignation.class, status); |
|
367 |
|
|
368 |
if(pageSize != null) { |
|
369 |
query.setMaxResults(pageSize); |
|
370 |
if(pageNumber != null) { |
|
371 |
query.setFirstResult(pageNumber * pageSize); |
|
372 |
} else { |
|
373 |
query.setFirstResult(0); |
|
374 |
} |
|
375 |
} |
|
376 |
return query.list(); |
|
377 |
} |
|
378 |
|
|
362 | 379 |
@Override |
363 | 380 |
public <T extends TypeDesignationBase> List<T> getTypeDesignations(TaxonName name, |
364 | 381 |
Class<T> type, |
365 | 382 |
TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, |
366 | 383 |
List<String> propertyPaths){ |
367 | 384 |
checkNotInPriorView("getTypeDesignations(TaxonName name,TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths)"); |
385 |
|
|
386 |
Query query = getTypeDesignationQuery("designation", name, type, status); |
|
387 |
|
|
388 |
if(pageSize != null) { |
|
389 |
query.setMaxResults(pageSize); |
|
390 |
if(pageNumber != null) { |
|
391 |
query.setFirstResult(pageNumber * pageSize); |
|
392 |
} else { |
|
393 |
query.setFirstResult(0); |
|
394 |
} |
|
395 |
} |
|
396 |
return defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths); |
|
397 |
} |
|
398 |
|
|
399 |
private <T extends TypeDesignationBase> Query getTypeDesignationQuery(String select, TaxonName name, |
|
400 |
Class<T> type, TypeDesignationStatusBase status){ |
|
368 | 401 |
Query query = null; |
369 |
String queryString = "select designation from TypeDesignationBase designation join designation.typifiedNames name where name = :name";
|
|
402 |
String queryString = "select "+select+" from TypeDesignationBase designation join designation.typifiedNames name where name = :name";
|
|
370 | 403 |
|
371 | 404 |
if(status != null) { |
372 | 405 |
queryString += " and designation.typeStatus = :status"; |
... | ... | |
385 | 418 |
} |
386 | 419 |
|
387 | 420 |
query.setParameter("name",name); |
388 |
|
|
389 |
if(pageSize != null) { |
|
390 |
query.setMaxResults(pageSize); |
|
391 |
if(pageNumber != null) { |
|
392 |
query.setFirstResult(pageNumber * pageSize); |
|
393 |
} else { |
|
394 |
query.setFirstResult(0); |
|
395 |
} |
|
396 |
} |
|
397 |
return defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths); |
|
421 |
return query; |
|
398 | 422 |
} |
399 | 423 |
|
400 |
|
|
401 | 424 |
public List<TaxonName> searchNames(String queryString, MatchMode matchMode, Integer pageSize, Integer pageNumber) { |
402 | 425 |
checkNotInPriorView("TaxonNameDaoHibernateImpl.searchNames(String queryString, Integer pageSize, Integer pageNumber)"); |
403 | 426 |
Criteria criteria = getSession().createCriteria(TaxonName.class); |
Also available in: Unified diff
ref #7095 Add dao method for listing UuidAndTitleCache object