Project

General

Profile

Download (2.17 KB) Statistics
| Branch: | Tag: | Revision:
1 78c2bf74 Katja Luther
/**
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 6feca103 Andreas Kohlbecker
*/
9 78c2bf74 Katja Luther
10 4a81af09 ben.clark
package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
11
12 001915e1 Andreas Müller
import java.util.List;
13
14 4a81af09 ben.clark
import org.hibernate.Hibernate;
15
import org.hibernate.Query;
16 001915e1 Andreas Müller
import org.hibernate.criterion.Criterion;
17 4a81af09 ben.clark
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 001915e1 Andreas Müller
import eu.etaxonomy.cdm.persistence.query.MatchMode;
23
import eu.etaxonomy.cdm.persistence.query.OrderHint;
24 4a81af09 ben.clark
25
@Repository
26
public class UserDaoImpl extends CdmEntityDaoBase<User> implements IUserDao {
27
28 6feca103 Andreas Kohlbecker
    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 f08f6894 Andreas Müller
    public long countByUsername(String queryString,	MatchMode matchmode, List<Criterion> criterion) {
53 6feca103 Andreas Kohlbecker
        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 4a81af09 ben.clark
}