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
21
22
23 @Stateless
24 public class UserDao implements UserDaoLocal {
25
26
27
28
29 private static final Logger LOGGER = LogManager.getLogger(UserDao.class);
30
31
32
33
34 @PersistenceContext
35 private EntityManager entityManager;
36
37
38
39
40 @Override
41 public void save(User user) {
42 LOGGER.info("save(User user) aufgerufen");
43 entityManager.persist(user);
44 }
45
46
47
48
49 @Override
50 public void merge(User user) {
51 LOGGER.info("merge(User user) aufgerufen");
52 entityManager.merge(user);
53 }
54
55
56
57
58 @Override
59 public void delete(User user) {
60 entityManager.remove(entityManager.find(User.class, user.getUuid()));
61 }
62
63
64
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
84
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
108
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 }