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.Team;
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>TeamDao class.</p>
34   *
35   * @author Michael Thomas (mikepthomas@outlook.com)
36   * @version $Id: $Id
37   */
38  @Repository
39  public class TeamDao {
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>addTeam.</p>
54       *
55       * @param team a {@link info.mikethomas.fahweb.model.Team} object.
56       */
57      @Transactional
58      public void addTeam(Team team) {
59          sessionFactory.getCurrentSession().save(team);
60      }
61  
62      /**
63       * <p>listTeam.</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<Team> listTeam(int firstResult, int maxResults) {
71          Query query = sessionFactory.getCurrentSession().createQuery("FROM Team ORDER BY score DESC");
72          query.setFirstResult(firstResult);
73          query.setMaxResults(maxResults);
74          return query.list();
75      }
76  }