import java.util.HashSet;\r
import java.util.List;\r
import java.util.Set;\r
+import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
import org.hibernate.Criteria;\r
import org.springframework.beans.factory.annotation.Qualifier;\r
import org.springframework.stereotype.Repository;\r
\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
-import eu.etaxonomy.cdm.model.description.Scope;\r
import eu.etaxonomy.cdm.model.description.SpecimenDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.view.AuditEvent;\r
@Qualifier("descriptionDaoImpl")\r
public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> implements IDescriptionDao{\r
\r
- @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(DescriptionDaoImpl.class);\r
\r
public DescriptionDaoImpl() {\r
indexedClasses[2] = SpecimenDescription.class;\r
}\r
\r
+// @Override //Override for testing\r
+// public DescriptionBase load(UUID uuid, List<String> propertyPaths){\r
+// DescriptionBase bean = findByUuid(uuid);\r
+// if(bean == null){\r
+// return bean;\r
+// }\r
+// defaultBeanInitializer.initialize(bean, propertyPaths);\r
+//\r
+// return bean;\r
+// }\r
+\r
+ @Override\r
public int countDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase status) {\r
checkNotInPriorView("DescriptionDaoImpl.countDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase status)");\r
Query query = null;\r
return ((Long)query.uniqueResult()).intValue();\r
}\r
\r
+ @Override\r
public int countDescriptionElements(DescriptionBase description, Set<Feature> features, Class<? extends DescriptionElementBase> clazz) {\r
+ return countDescriptionElements(description, null, features, clazz);\r
+ }\r
+\r
+ @Override\r
+ public int countDescriptionElements(DescriptionBase description, Class<? extends DescriptionBase> descriptionType,\r
+ Set<Feature> features, Class<? extends DescriptionElementBase> clazz) {\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
Criteria criteria = null;\r
criteria.add(Restrictions.eq("inDescription", description));\r
}\r
\r
+ if(descriptionType != null) {\r
+ criteria.createAlias("inDescription", "d").add(Restrictions.eq("d.class", descriptionType));\r
+ }\r
+\r
if(features != null && !features.isEmpty()) {\r
criteria.add(Restrictions.in("feature", features));\r
}\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
if(features != null && !features.isEmpty()) {\r
Integer count = 0;\r
query.add(AuditEntity.relatedId("inDescription").eq(description.getId()));\r
}\r
\r
+ if(descriptionType != null) {\r
+ query.add(AuditEntity.property("inDescription.class").eq(descriptionType));\r
+ }\r
+\r
query.add(AuditEntity.relatedId("feature").eq(f.getId()));\r
query.addProjection(AuditEntity.id().count("id"));\r
count += ((Long)query.getSingleResult()).intValue();\r
if(description != null) {\r
query.add(AuditEntity.relatedId("inDescription").eq(description.getId()));\r
}\r
+ if(descriptionType != null) {\r
+ query.add(AuditEntity.property("inDescription.class").eq(descriptionType));\r
+ }\r
+\r
query.addProjection(AuditEntity.id().count("id"));\r
return ((Long)query.getSingleResult()).intValue();\r
}\r
}\r
}\r
\r
+ @Override\r
public int countDescriptions(Class<? extends DescriptionBase> clazz, Boolean hasImages, Boolean hasText, Set<Feature> features) {\r
checkNotInPriorView("DescriptionDaoImpl.countDescriptions(Class<TYPE> type, Boolean hasImages, Boolean hasText, Set<Feature> features)");\r
Criteria inner = null;\r
\r
inner.setProjection(Projections.countDistinct("id"));\r
\r
- return (Integer) inner.uniqueResult();\r
+ return ((Number) inner.uniqueResult()).intValue();\r
}\r
\r
- public int countTaxonDescriptions(Taxon taxon, Set<Scope> scopes,Set<NamedArea> geographicalScopes, Set<MarkerType> markerTypes) {\r
+ @Override\r
+ public int countTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes,Set<NamedArea> geographicalScopes, Set<MarkerType> markerTypes) {\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
Criteria criteria = getSession().createCriteria(TaxonDescription.class);\r
\r
if(scopes != null && !scopes.isEmpty()) {\r
Set<Integer> scopeIds = new HashSet<Integer>();\r
- for(Scope s : scopes) {\r
+ for(DefinedTerm s : scopes) {\r
scopeIds.add(s.getId());\r
}\r
criteria.createCriteria("scopes").add(Restrictions.in("id", scopeIds));\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
if((scopes == null || scopes.isEmpty())&& (geographicalScopes == null || geographicalScopes.isEmpty()) && (markerTypes == null || markerTypes.isEmpty())) {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonDescription.class,auditEvent.getRevisionNumber());\r
*\r
*/\r
//TODO move to AnnotatableEntityDao(?)\r
- private void addMarkerTypesCriterion(Set<MarkerType> markerTypes,\r
- Criteria criteria) {\r
+ private void addMarkerTypesCriterion(Set<MarkerType> markerTypes, Criteria criteria) {\r
\r
if(markerTypes != null && !markerTypes.isEmpty()) {\r
Set<Integer> markerTypeIds = new HashSet<Integer>();\r
.createAlias("markerType", "mt")\r
.add(Restrictions.in("mt.id", markerTypeIds));\r
} else if (markerTypes != null && markerTypes.isEmpty()){\r
- //AT: added in case the projects requires an third state description, An empty Marker type set\r
+ //AT: added in case the projects requires an third state description, An empty Marker type set\r
}\r
}\r
+ @Override\r
+ public List<DescriptionElementBase> getDescriptionElements(\r
+ DescriptionBase description, Set<Feature> features,\r
+ Class<? extends DescriptionElementBase> clazz, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+ return getDescriptionElements(description, null, features, clazz, pageSize, pageNumber, propertyPaths);\r
+ }\r
\r
- public List<DescriptionElementBase> getDescriptionElements(DescriptionBase description, Set<Feature> features,Class<? extends DescriptionElementBase> clazz, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+ @Override\r
+ public List<DescriptionElementBase> getDescriptionElements(\r
+ DescriptionBase description, Class<? extends DescriptionBase> descriptionType,\r
+ Set<Feature> features,\r
+ Class<? extends DescriptionElementBase> clazz,\r
+ Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
if(description != null) {\r
criteria.add(Restrictions.eq("inDescription", description));\r
}\r
+ if(descriptionType != null) {\r
+ criteria.createAlias("inDescription", "d").add(Restrictions.eq("d.class", descriptionType));\r
+ }\r
\r
if(features != null && !features.isEmpty()) {\r
criteria.add(Restrictions.in("feature", features));\r
}\r
}\r
\r
- List<DescriptionElementBase> results = (List<DescriptionElementBase>)criteria.list();\r
+ List<DescriptionElementBase> results = criteria.list();\r
\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
\r
query.add(AuditEntity.relatedId("inDescription").eq(description.getId()));\r
}\r
\r
+ if(descriptionType != null) {\r
+ query.add(AuditEntity.property("inDescription.class").eq(descriptionType));\r
+ }\r
+\r
query.add(AuditEntity.relatedId("feature").eq(f.getId()));\r
- result.addAll((List<DescriptionElementBase>)query.getResultList());\r
+ result.addAll(query.getResultList());\r
}\r
} else {\r
AuditQuery query = null;\r
query.add(AuditEntity.relatedId("inDescription").eq(description.getId()));\r
}\r
\r
+ if(descriptionType != null) {\r
+ query.add(AuditEntity.property("inDescription.class").eq(descriptionType));\r
+ }\r
+\r
result = query.getResultList();\r
}\r
\r
}\r
}\r
\r
- public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<Scope> scopes, Set<NamedArea> geographicalScopes, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+ @Override\r
+ public List<TaxonDescription> listTaxonDescriptions(Taxon taxon, Set<DefinedTerm> scopes, Set<NamedArea> geographicalScopes, Set<MarkerType> markerTypes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
Criteria criteria = getSession().createCriteria(TaxonDescription.class);\r
\r
if(scopes != null && !scopes.isEmpty()) {\r
Set<Integer> scopeIds = new HashSet<Integer>();\r
- for(Scope s : scopes) {\r
+ for(DefinedTerm s : scopes) {\r
scopeIds.add(s.getId());\r
}\r
criteria.createCriteria("scopes").add(Restrictions.in("id", scopeIds));\r
}\r
}\r
\r
- List<TaxonDescription> results = (List<TaxonDescription>)criteria.list();\r
+ List<TaxonDescription> results = criteria.list();\r
\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
\r
}\r
}\r
\r
- List<TaxonDescription> results = (List<TaxonDescription>)query.getResultList();\r
+ List<TaxonDescription> results = query.getResultList();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
} else {\r
}\r
}\r
\r
+ @Override\r
public List<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase name, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
}\r
}\r
\r
- List<TaxonNameDescription> results = (List<TaxonNameDescription>)criteria.list();\r
+ List<TaxonNameDescription> results = criteria.list();\r
\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
\r
}\r
}\r
\r
- List<TaxonNameDescription> results = (List<TaxonNameDescription>)query.getResultList();\r
+ List<TaxonNameDescription> results = query.getResultList();\r
\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
\r
\r
}\r
\r
+ @Override\r
public int countTaxonNameDescriptions(TaxonNameBase name) {\r
AuditEvent auditEvent = getAuditEventFromContext();\r
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonNameDescription.class,auditEvent.getRevisionNumber());\r
\r
*\r
* outer.add(Subqueries.propertyIn("id", inner));\r
*/\r
+ @Override\r
public List<DescriptionBase> listDescriptions(Class<? extends DescriptionBase> clazz, Boolean hasImages, Boolean hasText, Set<Feature> features, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
checkNotInPriorView("DescriptionDaoImpl.listDescriptions(Class<TYPE> type, Boolean hasImages, Boolean hasText, Set<Feature> features, Integer pageSize, Integer pageNumber)");\r
Criteria inner = null;\r
\r
inner.setProjection(Projections.distinct(Projections.id()));\r
\r
- List<Object> intermediateResult = (List<Object>)inner.list();\r
+ List<Object> intermediateResult = inner.list();\r
\r
if(intermediateResult.isEmpty()) {\r
return new ArrayList<DescriptionBase>();\r
\r
Integer[] resultIds = new Integer[intermediateResult.size()];\r
for(int i = 0; i < resultIds.length; i++) {\r
- resultIds[i] = (Integer)intermediateResult.get(i);\r
+ resultIds[i] = ((Number)intermediateResult.get(i)).intValue();\r
}\r
\r
Criteria outer = null;\r
}\r
}\r
\r
- List<DescriptionBase> results = (List<DescriptionBase>)outer.list();\r
+ List<DescriptionBase> results = outer.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
\r
+ @Override\r
public List<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
checkNotInPriorView("DescriptionDaoImpl.searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)");\r
\r
\r
addOrder(criteria,orderHints);\r
\r
- List<Object> intermediateResult = (List<Object>)criteria.list();\r
+ List<Object> intermediateResult = criteria.list();\r
\r
- if(intermediateResult.isEmpty())\r
+ if(intermediateResult.isEmpty()) {\r
return new ArrayList<TaxonDescription>();\r
+ }\r
\r
Integer[] resultIds = new Integer[intermediateResult.size()];\r
for(int i = 0; i < resultIds.length; i++) {\r
if(orderHints == null || orderHints.isEmpty()) {\r
- resultIds[i] = (Integer)intermediateResult.get(i);\r
+ resultIds[i] = ((Number)intermediateResult.get(i)).intValue();\r
} else {\r
- resultIds[i] = (Integer)((Object[])intermediateResult.get(i))[0];\r
+ resultIds[i] = ((Number)((Object[])intermediateResult.get(i))[0]).intValue();\r
}\r
}\r
\r
criteria.add(Restrictions.in("id", resultIds));\r
addOrder(criteria,orderHints);\r
\r
- List<TaxonDescription> results = (List<TaxonDescription>)criteria.list();\r
+ List<TaxonDescription> results = criteria.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
\r
+ @Override\r
public List<CommonTaxonName> searchDescriptionByCommonName(String queryString, MatchMode matchMode, Integer pageSize, Integer pageNumber) {\r
\r
Criteria crit = getSession().createCriteria(CommonTaxonName.class);\r
crit.setFirstResult(pageNumber * pageSize);\r
}\r
}\r
- List<CommonTaxonName> results = (List<CommonTaxonName>)crit.list();\r
+ List<CommonTaxonName> results = crit.list();\r
return results;\r
}\r
\r
+ @Override\r
public Integer countDescriptionByCommonName(String queryString, MatchMode matchMode) {\r
//TODO inprove performance\r
List<CommonTaxonName> results = searchDescriptionByCommonName(queryString, matchMode, null, null);\r
}\r
\r
\r
+ @Override\r
public <T extends DescriptionElementBase> List<T> getDescriptionElementForTaxon(\r
- Taxon taxon, Set<Feature> features,\r
+ UUID taxonUuid, Set<Feature> features,\r
Class<T> type, Integer pageSize,\r
Integer pageNumber, List<String> propertyPaths) {\r
\r
- String queryString = "select de" +\r
+ Query query = prepareGetDescriptionElementForTaxon(taxonUuid, features, type, pageSize, pageNumber, false);\r
+\r
+ if (logger.isDebugEnabled()){logger.debug(" dao: get list ...");}\r
+ List<T> results = query.list();\r
+ if (logger.isDebugEnabled()){logger.debug(" dao: initialize ...");}\r
+ defaultBeanInitializer.initializeAll(results, propertyPaths);\r
+ if (logger.isDebugEnabled()){logger.debug(" dao: initialize - DONE");}\r
+ return results;\r
+ }\r
+\r
+ @Override\r
+ public <T extends DescriptionElementBase> long countDescriptionElementForTaxon(\r
+ UUID taxonUuid, Set<Feature> features, Class<T> type) {\r
+\r
+ Query query = prepareGetDescriptionElementForTaxon(taxonUuid, features, type, null, null, true);\r
+\r
+ return (Long)query.uniqueResult();\r
+ }\r
+\r
+ /**\r
+ * @param taxon\r
+ * @param features\r
+ * @param type\r
+ * @param pageSize\r
+ * @param pageNumber\r
+ * @return\r
+ */\r
+ private <T extends DescriptionElementBase> Query prepareGetDescriptionElementForTaxon(UUID taxonUuid,\r
+ Set<Feature> features, Class<T> type, Integer pageSize, Integer pageNumber, boolean asCountQuery) {\r
+\r
+ String listOrCount;\r
+ if(asCountQuery){\r
+ listOrCount = "count(de)";\r
+ } else {\r
+ listOrCount = "de";\r
+ }\r
+ String queryString = "select " + listOrCount +\r
" from TaxonDescription as td" +\r
" left join td.descriptionElements as de" +\r
- " where td.taxon = :taxon ";\r
+ " where td.taxon.uuid = :taxon_uuid ";\r
\r
if(type != null){\r
queryString += " and de.class = :type";\r
// System.out.println(queryString);\r
Query query = getSession().createQuery(queryString);\r
\r
- query.setParameter("taxon", taxon);\r
+ query.setParameter("taxon_uuid", taxonUuid);\r
if(type != null){\r
query.setParameter("type", type.getSimpleName());\r
}\r
query.setFirstResult(pageNumber * pageSize);\r
}\r
}\r
+ return query;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#listTaxonDescriptionMedia(java.util.UUID, java.lang.Boolean, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List)\r
+ */\r
+ @Override\r
+ public List<Media> listTaxonDescriptionMedia(UUID taxonUuid,\r
+ Boolean limitToGalleries, Set<MarkerType> markerTypes,\r
+ Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+\r
+ AuditEvent auditEvent = getAuditEventFromContext();\r
+ if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
+ String queryString = " SELECT media " +\r
+ getTaxonDescriptionMediaQueryString(\r
+ taxonUuid, limitToGalleries, markerTypes);\r
+ queryString +=\r
+ " GROUP BY media "\r
+// " ORDER BY index(media) " //not functional\r
+ ;\r
+\r
+ Query query = getSession().createQuery(queryString);\r
+\r
+ setTaxonDescriptionMediaParameters(query, taxonUuid, limitToGalleries, markerTypes);\r
+\r
+\r
+// addMarkerTypesCriterion(markerTypes, hql);\r
+\r
+ if(pageSize != null) {\r
+ query.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ query.setFirstResult(pageNumber * pageSize);\r
+ }\r
+ }\r
+\r
+ List<Media> results = query.list();\r
+\r
+ defaultBeanInitializer.initializeAll(results, propertyPaths);\r
+\r
+ return results;\r
+ } else {\r
+ throw new OperationNotSupportedInPriorViewException("countTaxonDescriptionMedia(UUID taxonUuid, boolean restrictToGalleries)");\r
+ }\r
+ }\r
+\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#countTaxonDescriptionMedia(java.util.UUID, java.lang.Boolean, java.util.Set)\r
+ */\r
+ @Override\r
+ public int countTaxonDescriptionMedia(UUID taxonUuid,\r
+ Boolean limitToGalleries, Set<MarkerType> markerTypes) {\r
+ AuditEvent auditEvent = getAuditEventFromContext();\r
+ if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {\r
+ String queryString = " SELECT count(DISTINCT media) " +\r
+ getTaxonDescriptionMediaQueryString(\r
+ taxonUuid, limitToGalleries, markerTypes);\r
+\r
+ Query query = getSession().createQuery(queryString);\r
+ setTaxonDescriptionMediaParameters(query, taxonUuid, limitToGalleries, markerTypes);\r
+ return ((Long)query.uniqueResult()).intValue();\r
+ }else{\r
+ throw new OperationNotSupportedInPriorViewException("countTaxonDescriptionMedia(UUID taxonUuid)");\r
+ }\r
+\r
+ }\r
+\r
+ private void setTaxonDescriptionMediaParameters(Query query, UUID taxonUuid, Boolean limitToGalleries, Set<MarkerType> markerTypes) {\r
+ if(taxonUuid != null){\r
+ query.setParameter("uuid", taxonUuid);\r
+ }\r
+\r
+ }\r
+\r
+ /**\r
+ * @param taxonUuid\r
+ * @param restrictToGalleries\r
+ * @param markerTypes\r
+ * @return\r
+ */\r
+ private String getTaxonDescriptionMediaQueryString(UUID taxonUuid,\r
+ Boolean restrictToGalleries, Set<MarkerType> markerTypes) {\r
+ String fromQueryString =\r
+ " FROM DescriptionElementBase as deb INNER JOIN " +\r
+ " deb.inDescription as td "\r
+ + " INNER JOIN td.taxon as t "\r
+ + " JOIN deb.media as media "\r
+ + " LEFT JOIN td.markers marker ";\r
+\r
+ String whereQueryString = " WHERE (1=1) ";\r
+ if (taxonUuid != null){\r
+ whereQueryString += " AND t.uuid = :uuid ";\r
+ }\r
+ if (restrictToGalleries){\r
+ whereQueryString += " AND td.imageGallery is true ";\r
+ }\r
+ if (markerTypes != null && !markerTypes.isEmpty()){\r
+ whereQueryString += " AND (1=0";\r
+ for (MarkerType markerType : markerTypes){\r
+ whereQueryString += " OR ( marker.markerType.id = " + markerType.getId() + " AND marker.flag is true)";\r
+\r
+ }\r
+ whereQueryString += ") ";\r
+ }\r
+\r
+ return fromQueryString + whereQueryString;\r
+\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#listNamedAreasInUse(java.lang.Integer, java.lang.Integer, java.util.List)\r
+ */\r
+ @Override\r
+ public List<NamedArea> listNamedAreasInUse(Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+\r
+ String queryString = "select distinct d.area from Distribution as d";\r
+ Query query = getSession().createQuery(queryString);\r
+\r
+ if(pageSize != null) {\r
+ query.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ query.setFirstResult(pageNumber * pageSize);\r
+ }\r
+ }\r
+\r
+ List<NamedArea> results = query.list();\r
\r
- List<T> results = (List<T>) query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
\r
return results;\r
}\r
+\r
+\r
+\r
}\r