Project

General

Profile

Download (2.17 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9

    
10
package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
11

    
12
import java.util.List;
13

    
14
import org.hibernate.Hibernate;
15
import org.hibernate.Query;
16
import org.hibernate.criterion.Criterion;
17
import org.springframework.stereotype.Repository;
18

    
19
import eu.etaxonomy.cdm.model.common.Group;
20
import eu.etaxonomy.cdm.model.common.User;
21
import eu.etaxonomy.cdm.persistence.dao.common.IUserDao;
22
import eu.etaxonomy.cdm.persistence.query.MatchMode;
23
import eu.etaxonomy.cdm.persistence.query.OrderHint;
24

    
25
@Repository
26
public class UserDaoImpl extends CdmEntityDaoBase<User> implements IUserDao {
27

    
28
    public UserDaoImpl() {
29
        super(User.class);
30
    }
31

    
32
    @Override
33
    public User findUserByUsername(String username) {
34
        Query query = getSession().createQuery("select user from User user where user.username = :username");
35
        query.setParameter("username", username);
36

    
37
        User user = (User)query.uniqueResult(); // username is a @NaturalId
38

    
39
        if(user != null) {
40
            getSession().refresh(user); // make sure the user is always up to date
41
            Hibernate.initialize(user.getPerson());
42
            Hibernate.initialize(user.getGrantedAuthorities());
43
            for(Group group : user.getGroups()) {
44
                Hibernate.initialize(group.getGrantedAuthorities());
45
            }
46
        }
47

    
48
        return user;
49
    }
50

    
51
    @Override
52
    public long countByUsername(String queryString,	MatchMode matchmode, List<Criterion> criterion) {
53
        return countByParam(type, "username",queryString,matchmode,criterion);
54
    }
55

    
56
    @Override
57
    public List<User> findByUsername(String queryString, MatchMode matchmode, List<Criterion> criterion, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
58
        return findByParam(type, "username", queryString, matchmode, criterion, pageSize, pageNumber, orderHints, propertyPaths);
59
    }
60

    
61
}
(23-23/24)