2 * Copyright (C) 2008 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
7 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.name
;
11 import org
.apache
.log4j
.Logger
;
12 import org
.hibernate
.Query
;
13 import org
.springframework
.stereotype
.Repository
;
15 import eu
.etaxonomy
.cdm
.model
.name
.HomotypicalGroup
;
16 import eu
.etaxonomy
.cdm
.model
.name
.TypeDesignationBase
;
17 import eu
.etaxonomy
.cdm
.model
.name
.TypeDesignationStatusBase
;
18 import eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.common
.CdmEntityDaoBase
;
19 import eu
.etaxonomy
.cdm
.persistence
.dao
.name
.IHomotypicalGroupDao
;
22 * @author a.babadshanjan
26 public class HomotypicalGroupDaoHibernateImpl
extends CdmEntityDaoBase
<HomotypicalGroup
> implements IHomotypicalGroupDao
{
28 @SuppressWarnings("unused")
29 private static final Logger logger
= Logger
.getLogger(HomotypicalGroupDaoHibernateImpl
.class);
31 public HomotypicalGroupDaoHibernateImpl() {
32 super(HomotypicalGroup
.class);
36 * @see eu.etaxonomy.cdm.persistence.dao.name.IHomotypicalGroupDao#getTypeDesignations(eu.etaxonomy.cdm.model.name.HomotypicalGroup, java.lang.Class, eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase, java.lang.Integer, java.lang.Integer, java.util.List)
39 public <T
extends TypeDesignationBase
> List
<T
> getTypeDesignations(
40 HomotypicalGroup homotypicalGroup
, Class
<T
> type
,
41 TypeDesignationStatusBase status
, Integer pageSize
,
42 Integer pageNumber
, List
<String
> propertyPaths
) {
44 // checkNotInPriorView("getTypeDesignations(HomotypicalGroup homotypicalGroup,TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber, List<String> propertyPaths)");
46 String queryString
= "select designation from TypeDesignationBase designation join designation.typifiedNames name join name.homotypicalGroup homotypicalGroup where homotypicalGroup = :homotypicalGroup";
49 queryString
+= " and designation.typeStatus = :status";
52 queryString
+= " and designation.class = :type";
55 query
= getSession().createQuery(queryString
);
58 query
.setParameter("status", status
);
61 query
.setParameter("type", type
.getSimpleName());
64 query
.setParameter("homotypicalGroup",homotypicalGroup
);
66 if(pageSize
!= null) {
67 query
.setMaxResults(pageSize
);
68 if(pageNumber
!= null) {
69 query
.setFirstResult(pageNumber
* pageSize
);
71 query
.setFirstResult(0);
74 return defaultBeanInitializer
.initializeAll(query
.list(), propertyPaths
);