import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;\r
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;\r
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;\r
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
@Override\r
public long countMedia(SpecimenOrObservationBase occurence) {\r
checkNotInPriorView("OccurrenceDaoHibernateImpl.countMedia(SpecimenOrObservationBase occurence)");\r
- Query query = getSession().createQuery("select count(media) from SpecimenOrObservationBase occurence join occurence.media media where occurence = :occurence");\r
+ Query query = getSession().createQuery("SELECT count(media) FROM SpecimenOrObservationBase occurence JOIN occurence.media media WHERE occurence = :occurence");\r
query.setParameter("occurence", occurence);\r
\r
return (Long)query.uniqueResult();\r
@Override\r
public List<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize,Integer pageNumber, List<String> propertyPaths) {\r
checkNotInPriorView("OccurrenceDaoHibernateImpl.getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize,Integer pageNumber)");\r
- Query query = getSession().createQuery("select distinct derivationEvent from DerivationEvent derivationEvent join derivationEvent.originals occurence where occurence = :occurence");\r
+ Query query = getSession().createQuery("SELECT DISTINCT derivationEvent FROM DerivationEvent derivationEvent JOIN derivationEvent.originals occurence WHERE occurence = :occurence");\r
query.setParameter("occurence", occurence);\r
\r
addPageSizeAndNumber(query, pageSize, pageNumber);\r
}\r
\r
private <T extends SpecimenOrObservationBase> Criteria createFindOccurrenceCriteria(Class<T> clazz, String queryString,\r
- String significantIdentifier, SpecimenOrObservationType recordBasis, Taxon associatedTaxon, TaxonName associatedTaxonName, MatchMode matchmode, Integer limit,\r
+ String significantIdentifier, SpecimenOrObservationType recordBasis, Taxon associatedTaxon,\r
+ TaxonName associatedTaxonName, MatchMode matchmode, Integer limit,\r
Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Criteria criteria = null;\r
\r
}\r
\r
//recordBasis/SpecimenOrObservationType\r
- Set<SpecimenOrObservationType> typeAndSubtypes = new HashSet<SpecimenOrObservationType>();\r
+ Set<SpecimenOrObservationType> typeAndSubtypes = new HashSet<>();\r
if(recordBasis==null){\r
//add all types\r
SpecimenOrObservationType[] values = SpecimenOrObservationType.values();\r
}\r
criteria.add(Restrictions.in("recordBasis", typeAndSubtypes));\r
\r
- Set<UUID> associationUuids = new HashSet<UUID>();\r
+ Set<UUID> associationUuids = new HashSet<>();\r
//taxon associations\r
if(associatedTaxon!=null){\r
List<UuidAndTitleCache<SpecimenOrObservationBase>> associatedTaxaList = listUuidAndTitleCacheByAssociatedTaxon(clazz, associatedTaxon, limit, start, orderHints);\r
(Integer) object[1],\r
(String) object[2]),\r
(SpecimenOrObservationType)object[3],\r
- (TaxonNode)object[4]);\r
+ new TaxonNodeDto((TaxonNode)object[4]));\r
if(object.length>5) {\r
wrapper.setTaxonDescriptionUuid((UUID)object[5]);\r
}\r
public Collection<SpecimenNodeWrapper> listUuidAndTitleCacheByAssociatedTaxon(List<UUID> taxonNodeUuids,\r
Integer limit, Integer start){\r
\r
- Collection<SpecimenNodeWrapper> wrappers = new HashSet<>();\r
- wrappers.addAll(queryIndividualAssociatedSpecimen(taxonNodeUuids, limit, start));\r
- wrappers.addAll(queryTaxonDeterminations(taxonNodeUuids, limit, start));\r
- wrappers.addAll(queryTaxonNameDeterminations(taxonNodeUuids, limit, start));\r
- wrappers.addAll(queryTypeSpecimen(taxonNodeUuids, limit, start));\r
+ Set<SpecimenNodeWrapper> testSet = new HashSet();\r
+\r
+ testSet.addAll(queryIndividualAssociatedSpecimen(taxonNodeUuids, limit, start));\r
+ testSet.addAll(queryTaxonDeterminations(taxonNodeUuids, limit, start));\r
+ testSet.addAll(queryTaxonNameDeterminations(taxonNodeUuids, limit, start));\r
+ testSet.addAll(queryTypeSpecimen(taxonNodeUuids, limit, start));\r
\r
+ Collection<SpecimenNodeWrapper> wrappers = new HashSet<>();\r
+ wrappers.addAll(testSet);\r
return wrappers;\r
}\r
\r
@Override\r
public <T extends SpecimenOrObservationBase> List<UuidAndTitleCache<SpecimenOrObservationBase>> listUuidAndTitleCacheByAssociatedTaxon(Class<T> clazz, Taxon associatedTaxon,\r
Integer limit, Integer start, List<OrderHint> orderHints){\r
- Query query = createSpecimenQuery("sob.uuid, sob.id, sob.titleCache", clazz, associatedTaxon, limit, start, orderHints, null);\r
+ Query query = createSpecimenQuery("sob.uuid, sob.id, sob.titleCache", clazz, associatedTaxon, limit, start, orderHints);\r
if(query==null){\r
return Collections.emptyList();\r
}\r
@Override\r
public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxon(Class<T> clazz,\r
Taxon associatedTaxon, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- Query query = createSpecimenQuery("sob", clazz, associatedTaxon, limit, start, orderHints, propertyPaths);\r
+ Query query = createSpecimenQuery("sob", clazz, associatedTaxon, limit, start, orderHints);\r
if(query==null){\r
return Collections.emptyList();\r
}\r
}\r
\r
private <T extends SpecimenOrObservationBase> Query createSpecimenQuery(String select, Class<T> clazz,\r
- Taxon associatedTaxon, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths){\r
- Set<SpecimenOrObservationBase> setOfAll = new HashSet<>();\r
+ Taxon associatedTaxon, Integer limit, Integer start, List<OrderHint> orderHints){\r
+// Set<SpecimenOrObservationBase> setOfAll = new HashSet<>();\r
Set<Integer> setOfAllIds = new HashSet<>();\r
\r
Criteria criteria = null;\r
for(HomotypicalGroup homotypicalGroup : associatedTaxon.getHomotypicSynonymyGroups()) {\r
List<SpecimenTypeDesignation> byHomotypicalGroup = homotypicalGroupDao.getTypeDesignations(homotypicalGroup, SpecimenTypeDesignation.class, null, null, 0, null);\r
for (SpecimenTypeDesignation specimenTypeDesignation : byHomotypicalGroup) {\r
- setOfAll.add(specimenTypeDesignation.getTypeSpecimen());\r
+ if (specimenTypeDesignation.getTypeSpecimen() != null){\r
+ setOfAllIds.add(specimenTypeDesignation.getTypeSpecimen().getId());\r
+ }\r
}\r
}\r
\r