1
2
3
4 package de.tivsource.page.dao.captcha;
5
6 import java.util.Date;
7 import java.util.List;
8 import java.util.Random;
9 import java.util.logging.Logger;
10
11 import javax.ejb.Stateless;
12 import javax.persistence.EntityManager;
13 import javax.persistence.PersistenceContext;
14 import javax.persistence.Query;
15
16 import de.tivsource.page.common.captcha.Captcha;
17
18
19
20
21
22 @Stateless
23 public class CaptchaDao implements CaptchaDaoLocal {
24
25 private static final Logger logger = Logger.getLogger("INFO");
26
27 @PersistenceContext
28 private EntityManager entityManager;
29
30
31
32
33 @Override
34 public void merge(Captcha captcha) {
35 logger.info("merge(Captcha captcha) aufgerufen");
36 captcha.setModified(new Date());
37 entityManager.merge(captcha);
38 }
39
40
41
42
43 @Override
44 public void delete(Captcha captcha) {
45 entityManager.remove(entityManager.find(Captcha.class, captcha.getUuid()));
46 }
47
48
49
50
51 @Override
52 public Captcha findByUuid(String uuid) {
53 return entityManager.find(Captcha.class, uuid);
54 }
55
56
57
58
59 @SuppressWarnings("unchecked")
60 @Override
61 public List<Captcha> findAll(Integer start, Integer max) {
62 Query query = entityManager.createQuery("from Captcha c order by c.uuid asc");
63 query.setFirstResult(start);
64 query.setMaxResults(max);
65 return query.getResultList();
66 }
67
68
69
70
71 @SuppressWarnings("unchecked")
72 @Override
73 public List<Captcha> findAll(Integer start, Integer max, String field, String order) {
74 String queryString = "SELECT c FROM Captcha c ORDER BY ";
75 queryString = queryString + field + " " + order;
76 Query query = entityManager.createQuery(queryString);
77 query.setFirstResult(start);
78 query.setMaxResults(max);
79 return query.getResultList();
80 }
81
82
83
84
85 @Override
86 public Integer countAll() {
87 Query query = entityManager.createQuery("Select Count(c) from Captcha c");
88 return Integer.parseInt(query.getSingleResult().toString());
89 }
90
91
92
93
94 @Override
95 public Captcha random() {
96 Random random = new Random();
97 int next = random.nextInt(countAll());
98 logger.info("Captcha Random Number: " + next);
99 return findAll(next, 1).get(0);
100 }
101
102 }