2 * Copyright (C) 2009 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
.common
;
12 import java
.util
.List
;
14 import org
.hibernate
.Hibernate
;
15 import org
.hibernate
.Query
;
16 import org
.hibernate
.criterion
.Criterion
;
17 import org
.springframework
.stereotype
.Repository
;
19 import eu
.etaxonomy
.cdm
.model
.common
.Group
;
20 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.IGroupDao
;
21 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
22 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
25 public class GroupDaoImpl
extends CdmEntityDaoBase
<Group
> implements IGroupDao
{
27 public GroupDaoImpl() {
31 public Group
findGroupByName(String groupName
) {
32 Query query
= getSession().createQuery("select g from Group g where g.name = :name");
33 query
.setParameter("name",groupName
);
35 Group group
= (Group
)query
.uniqueResult();
37 Hibernate
.initialize(group
.getGrantedAuthorities());
38 Hibernate
.initialize(group
.getMembers());
44 public List
<String
> listNames(Integer pageSize
, Integer pageNumber
) {
45 Query query
= getSession().createQuery("select g.name from Group g");
47 if(pageSize
!= null) {
48 query
.setMaxResults(pageSize
);
49 if(pageNumber
!= null) {
50 query
.setFirstResult(pageNumber
* pageSize
);
52 query
.setFirstResult(0);
56 return (List
<String
>)query
.list();
59 public List
<String
> listMembers(Group group
, Integer pageSize
, Integer pageNumber
) {
60 Query query
= getSession().createQuery("select m.username from Group g join g.members m where g = :group");
61 query
.setParameter("group", group
);
63 if(pageSize
!= null) {
64 query
.setMaxResults(pageSize
);
65 if(pageNumber
!= null) {
66 query
.setFirstResult(pageNumber
* pageSize
);
68 query
.setFirstResult(0);
72 return (List
<String
>)query
.list();
76 * @see eu.etaxonomy.cdm.persistence.dao.common.IGroupDao#countByName(java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
78 public int countByName(String queryString
, MatchMode matchmode
, List
<Criterion
> criterion
) {
79 return countByParam(type
, "name",queryString
,matchmode
,criterion
);
83 * @see eu.etaxonomy.cdm.persistence.dao.common.IGroupDao#findByName(java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
85 public List
<Group
> findByName(String queryString
, MatchMode matchmode
, List
<Criterion
> criterion
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
86 return findByParam(type
, "name", queryString
, matchmode
, criterion
, pageSize
, pageNumber
, orderHints
, propertyPaths
);