View Javadoc
1   package info.mikethomas.fahweb.dao;
2   
3   /*
4    * #%L
5    * This file is part of FAHWeb.
6    * %%
7    * Copyright (C) 2012 - 2017 Michael Thomas <mikepthomas@outlook.com>
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import info.mikethomas.fahweb.model.User;
26  import java.util.List;
27  import org.hibernate.Query;
28  import org.hibernate.SessionFactory;
29  import org.springframework.stereotype.Repository;
30  import org.springframework.transaction.annotation.Transactional;
31  
32  /**
33   * <p>UserDao class.</p>
34   *
35   * @author Michael Thomas (mikepthomas@outlook.com)
36   * @version $Id: $Id
37   */
38  @Repository
39  public class UserDao {
40  
41      private SessionFactory sessionFactory;
42  
43      /**
44       * <p>Setter for the field <code>sessionFactory</code>.</p>
45       *
46       * @param sessionFactory a {@link org.hibernate.SessionFactory} object.
47       */
48      public void setSessionFactory(SessionFactory sessionFactory) {
49          this.sessionFactory = sessionFactory;
50      }
51  
52      /**
53       * <p>addUser.</p>
54       *
55       * @param user a {@link info.mikethomas.fahweb.model.User} object.
56       */
57      @Transactional
58      public void addUser(User user) {
59          sessionFactory.getCurrentSession().save(user);
60      }
61  
62      /**
63       * <p>listUser.</p>
64       *
65       * @param firstResult a int.
66       * @param maxResults a int.
67       * @return a {@link java.util.List} object.
68       */
69      @Transactional
70      public List<User> listUser(int firstResult, int maxResults) {
71          Query query = sessionFactory.getCurrentSession().createQuery("FROM User ORDER BY newCredit DESC");
72          query.setFirstResult(firstResult);
73          query.setMaxResults(maxResults);
74          return query.list();
75      }
76  
77      /**
78       * <p>listUserForTeam.</p>
79       *
80       * @param team a int.
81       * @param firstResult a int.
82       * @param maxResults a int.
83       * @return a {@link java.util.List} object.
84       */
85      @Transactional
86      public List<User> listUserForTeam(int team, int firstResult, int maxResults) {
87          Query query = sessionFactory.getCurrentSession().createQuery("FROM User WHERE team=:team ORDER BY newCredit DESC");
88          query.setFirstResult(firstResult);
89          query.setMaxResults(maxResults);
90          query.setInteger("team", team);
91          return query.list();
92      }
93  }