280d48413c9ac7760cc8eb31350efec003b5b3c1
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.agent
;
12 import java
.util
.List
;
14 import org
.apache
.log4j
.Logger
;
15 import org
.hibernate
.Criteria
;
16 import org
.hibernate
.Query
;
17 import org
.hibernate
.criterion
.Restrictions
;
18 import org
.springframework
.stereotype
.Repository
;
20 import eu
.etaxonomy
.cdm
.model
.agent
.Agent
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.InstitutionalMembership
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
24 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
25 import eu
.etaxonomy
.cdm
.persistence
.dao
.agent
.IAgentDao
;
26 import eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.common
.IdentifiableDaoBase
;
30 public class AgentDaoImpl
extends IdentifiableDaoBase
<Agent
> implements IAgentDao
{
32 @SuppressWarnings("unused")
33 private static final Logger logger
= Logger
.getLogger(AgentDaoImpl
.class);
35 public AgentDaoImpl() {
39 public List
<Institution
> getInstitutionByCode(String code
) {
40 Criteria crit
= getSession().createCriteria(Institution
.class);
42 crit
.add(Restrictions
.eq("code", code
));
43 List
<Institution
> results
= crit
.list();
47 public int countInstitutionalMemberships(Person person
) {
48 Query query
= getSession().createQuery("select count(institutionalMembership) from InstitutionalMembership institutionalMembership where institutionalMembership.person = :person");
49 query
.setParameter("person", person
);
50 return ((Long
)query
.uniqueResult()).intValue();
53 public int countMembers(Team team
) {
54 Query query
= getSession().createQuery("select count(teamMember) from Team team join team.teamMembers teamMember where team = :team");
55 query
.setParameter("team", team
);
56 return ((Long
)query
.uniqueResult()).intValue();
59 public List
<InstitutionalMembership
> getInstitutionalMemberships(Person person
, Integer pageSize
, Integer pageNumber
) {
60 Query query
= getSession().createQuery("select institutionalMembership from InstitutionalMembership institutionalMembership left join fetch institutionalMembership.institute where institutionalMembership.person = :person");
61 query
.setParameter("person", person
);
62 if(pageSize
!= null) {
63 query
.setMaxResults(pageSize
);
64 if(pageNumber
!= null) {
65 query
.setFirstResult(pageNumber
* pageSize
);
67 query
.setFirstResult(0);
71 return (List
<InstitutionalMembership
>)query
.list();
74 public List
<Person
> getMembers(Team team
, Integer pageSize
, Integer pageNumber
) {
75 Query query
= getSession().createQuery("select teamMember from Team team join team.teamMembers teamMember where team = :team");
76 query
.setParameter("team", team
);
78 if(pageSize
!= null) {
79 query
.setMaxResults(pageSize
);
80 if(pageNumber
!= null) {
81 query
.setFirstResult(pageNumber
* pageSize
);
83 query
.setFirstResult(0);
86 return (List
<Person
>)query
.list();