View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.administration;
5   
6   import java.util.List;
7   
8   import javax.ejb.Stateless;
9   import javax.persistence.EntityManager;
10  import javax.persistence.NoResultException;
11  import javax.persistence.PersistenceContext;
12  import javax.persistence.Query;
13  
14  import org.apache.logging.log4j.LogManager;
15  import org.apache.logging.log4j.Logger;
16  
17  import de.tivsource.page.entity.administration.User;
18  
19  /**
20   * @author Marc Michele
21   *
22   */
23  @Stateless
24  public class UserDao implements UserDaoLocal {
25  
26      /*
27       * Statischer Logger der Klasse.
28       */
29      private static final Logger LOGGER = LogManager.getLogger(UserDao.class);
30  
31      /*
32       * EntityManager der Dao Klasse.
33       */
34      @PersistenceContext
35      private EntityManager entityManager;
36  
37      /* (non-Javadoc)
38       * @see de.tivsource.page.dao.administration.UserDaoLocal#save(de.tivsource.page.entity.administration.User)
39       */
40      @Override
41      public void save(User user) {
42          LOGGER.info("save(User user) aufgerufen");
43          entityManager.persist(user);
44      }
45  
46      /* (non-Javadoc)
47       * @see de.tivsource.page.dao.administration.UserDaoLocal#merge(de.tivsource.page.entity.administration.User)
48       */
49      @Override
50      public void merge(User user) {
51          LOGGER.info("merge(User user) aufgerufen");
52          entityManager.merge(user);
53      }
54  
55      /* (non-Javadoc)
56       * @see de.tivsource.page.dao.administration.UserDaoLocal#delete(de.tivsource.page.entity.administration.User)
57       */
58      @Override
59      public void delete(User user) {
60          entityManager.remove(entityManager.find(User.class, user.getUuid()));
61      }
62  
63      /* (non-Javadoc)
64       * @see de.tivsource.page.dao.administration.UserDaoLocal#findByUsername(java.lang.String)
65       */
66      @Override
67      public User findByUsername(String username) {
68          LOGGER.info("findByUsername(String username) aufgerufen.");
69          try {
70              Query query = entityManager.createQuery("select u from User u where u.username = :username");
71              query.setParameter("username", username);
72              return (User)query.getSingleResult();
73          } catch(NoResultException e) {
74          	return null;
75          }
76      }
77  
78      @Override
79      public User findByUuid(String uuid) {
80          return entityManager.find(User.class, uuid);
81      }
82  
83      /* (non-Javadoc)
84       * @see de.tivsource.page.dao.administration.UserDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
85       */
86      @Override
87      @SuppressWarnings("unchecked")
88      public List<User> findAll(Integer start, Integer max) {
89          Query query = entityManager.createQuery("from User u");
90          query.setFirstResult(start);
91          query.setMaxResults(max);
92          return query.getResultList();
93      }
94  
95      @Override
96      @SuppressWarnings("unchecked")
97      public List<User> findAll(Integer start, Integer max, String field,
98              String order) {
99          String queryString = "select u from User u order by ";
100         queryString = queryString + field + " " + order;
101         Query query = entityManager.createQuery(queryString);
102         query.setFirstResult(start);
103         query.setMaxResults(max);
104         return query.getResultList();
105     }
106 
107     /* (non-Javadoc)
108      * @see de.tivsource.page.dao.administration.UserDaoLocal#countAll()
109      */
110     @Override
111     public Integer countAll() {
112         Query query = entityManager.createQuery("Select Count(u) from User u");
113         return Integer.parseInt(query.getSingleResult().toString());
114     }
115 
116 }// Ende class