1
2
3
4 package de.tivsource.page.dao.event;
5
6 import java.util.Date;
7 import java.util.List;
8
9 import javax.ejb.Stateless;
10 import javax.persistence.EntityManager;
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.event.Event;
18
19
20
21
22
23 @Stateless
24 public class EventDao implements EventDaoLocal {
25
26
27
28
29 private static final Logger LOGGER = LogManager.getLogger(EventDao.class);
30
31
32
33
34 @PersistenceContext
35 private EntityManager entityManager;
36
37
38
39
40 @Override
41 public void save(Event event) {
42 LOGGER.info("save(Event event) aufgerufen");
43 entityManager.persist(event);
44 }
45
46
47
48
49 @Override
50 public void merge(Event event) {
51 LOGGER.info("merge(Event event) aufgerufen");
52 entityManager.merge(event);
53 }
54
55
56
57
58 @Override
59 public void delete(Event event) {
60 entityManager.remove(entityManager.find(Event.class, event.getUuid()));
61 }
62
63 @Override
64 public Boolean isEvent(String uuid) {
65 Query query = entityManager.createQuery("select e from Event e where e.uuid = :uuid and e.visible = 'Y' and e.reservation = 'Y' order by e.uuid asc");
66 query.setParameter("uuid", uuid);
67 return (query.getResultList().size() > 0 ? true : false);
68 }
69
70
71
72
73 @Override
74 public Event findByUuid(String uuid) {
75 return entityManager.find(Event.class, uuid);
76 }
77
78
79
80
81 @SuppressWarnings("unchecked")
82 @Override
83 public List<Event> findAll(Integer start, Integer max) {
84 Query query = entityManager.createQuery("from Event e order by e.beginning asc");
85 query.setFirstResult(start);
86 query.setMaxResults(max);
87 return query.getResultList();
88 }
89
90
91
92
93 @SuppressWarnings("unchecked")
94 @Override
95 public List<Event> findAll(Integer start, Integer max, String field, String order) {
96 LOGGER.info("findAll(Integer start, Integer max, String field, String order) aufgerufen");
97 LOGGER.info("Inhalt start: " + start);
98 LOGGER.info("Inhalt max: " + max);
99 LOGGER.info("Inhalt field: " + field);
100 LOGGER.info("Inhalt order: " + order);
101 String queryString = "SELECT DISTINCT e FROM Event e JOIN e.descriptionMap dm JOIN e.location.descriptionMap edm WHERE dm.language = 'DE' AND edm.language = 'DE' ORDER BY ";
102 queryString = queryString + field + " " + order;
103 Query query = entityManager.createQuery(queryString);
104 query.setFirstResult(start);
105 query.setMaxResults(max);
106 return query.getResultList();
107 }
108
109 @SuppressWarnings("unchecked")
110 @Override
111 public List<Event> findAllActive(Integer start, Integer max) {
112 Query query = entityManager.createQuery("from Event e where e.ending > :date order by e.beginning asc");
113 query.setFirstResult(start);
114 query.setMaxResults(max);
115 query.setParameter("date", new Date());
116 return query.getResultList();
117 }
118
119 @SuppressWarnings("unchecked")
120 @Override
121 public List<Event> findAllActive(Integer start, Integer max, String field, String order) {
122 String queryString = "SELECT DISTINCT e FROM Event e JOIN e.descriptionMap dm JOIN e.location.descriptionMap edm WHERE dm.language = 'DE' AND edm.language = 'DE' AND e.ending > :date ORDER BY ";
123 queryString = queryString + field + " " + order;
124 Query query = entityManager.createQuery(queryString);
125 query.setFirstResult(start);
126 query.setMaxResults(max);
127 query.setParameter("date", new Date());
128 return query.getResultList();
129 }
130
131 @SuppressWarnings("unchecked")
132 @Override
133 public List<Event> findAll(String uuid, Integer start, Integer max) {
134 Query query = entityManager.createQuery("from Event e where e.location.uuid = :uuid and e.visible = 'Y' and e.beginning > :date order by e.beginning asc");
135 query.setFirstResult(start);
136 query.setMaxResults(max);
137 query.setParameter("uuid", uuid);
138 query.setParameter("date", new Date());
139 return query.getResultList();
140 }
141
142
143
144
145 @Override
146 public Integer countAll() {
147 Query query = entityManager.createQuery("Select Count(e) from Event e");
148 return Integer.parseInt(query.getSingleResult().toString());
149 }
150
151 @Override
152 public Integer countAllActive() {
153 Query query = entityManager.createQuery("Select Count(e) from Event e where e.ending > :date");
154 query.setParameter("date", new Date());
155 return Integer.parseInt(query.getSingleResult().toString());
156 }
157
158 @Override
159 public Integer countAll(String uuid) {
160 Query query = entityManager.createQuery("Select Count(e) from Event e where e.location.uuid = :uuid and e.visible = 'Y' and e.beginning > :date");
161 query.setParameter("uuid", uuid);
162 query.setParameter("date", new Date());
163 return Integer.parseInt(query.getSingleResult().toString());
164 }
165
166 }