1
2
3
4 package de.tivsource.page.dao.picture;
5
6 import java.util.List;
7
8 import javax.ejb.Stateless;
9 import javax.persistence.EntityManager;
10 import javax.persistence.PersistenceContext;
11 import javax.persistence.Query;
12
13 import org.apache.logging.log4j.LogManager;
14 import org.apache.logging.log4j.Logger;
15
16 import de.tivsource.page.entity.picture.Picture;
17 import de.tivsource.page.entity.picture.PictureUrl;
18
19
20
21
22
23 @Stateless
24 public class PictureDao implements PictureDaoLocal {
25
26
27
28
29 private static final Logger LOGGER = LogManager.getLogger(PictureDao.class);
30
31
32
33
34 @PersistenceContext
35 private EntityManager entityManager;
36
37
38
39
40 @Override
41 public void save(Picture picture) {
42 LOGGER.info("save(Picture picture) aufgerufen");
43 entityManager.persist(picture);
44 }
45
46
47
48
49 @Override
50 public void merge(Picture picture) {
51 LOGGER.info("merge(Picture picture) aufgerufen");
52 entityManager.merge(picture);
53 }
54
55
56
57
58 @Override
59 public void delete(Picture picture) {
60
61 entityManager.remove(entityManager.find(Picture.class, picture.getUuid()));
62 }
63
64 @Override
65 public void delete(String pictureUrlUuid) {
66
67 entityManager.remove(entityManager.find(PictureUrl.class, pictureUrlUuid));
68 }
69
70
71
72
73 @Override
74 public Boolean isPicture(String uuid) {
75 Query query = entityManager.createQuery("select p from Picture p where p.uuid = :uuid and p.visible = 'Y' order by p.uuid asc");
76 query.setParameter("uuid", uuid);
77 return (query.getResultList().size() > 0 ? true : false);
78 }
79
80 @Override
81 public Boolean hasReferences(String uuid) {
82 Query query = entityManager.createQuery("select n from NamingItem n where n.picture.uuid = :uuid order by n.uuid asc");
83 query.setParameter("uuid", uuid);
84 return (query.getResultList().size() > 0 ? true : false);
85 }
86
87
88
89
90 @Override
91 public Picture findByUuid(String uuid) {
92 return entityManager.find(Picture.class, uuid);
93 }
94
95 @SuppressWarnings("unchecked")
96 @Override
97 public List<Picture> findAll(String uuid) {
98 Query query = entityManager.createQuery("from Picture p where p.gallery.uuid = :uuid order by p.orderNumber asc");
99 query.setParameter("uuid", uuid);
100 return query.getResultList();
101 }
102
103
104
105
106 @SuppressWarnings("unchecked")
107 @Override
108 public List<Picture> findAll(Integer start, Integer max) {
109 Query query = entityManager.createQuery("from Picture p order by p.orderNumber asc");
110 query.setFirstResult(start);
111 query.setMaxResults(max);
112 return query.getResultList();
113 }
114
115
116
117
118 @SuppressWarnings("unchecked")
119 @Override
120 public List<Picture> findAll(Integer start, Integer max, String field, String order) {
121 String queryString = "SELECT DISTINCT p FROM Picture p JOIN p.descriptionMap dm JOIN p.gallery.descriptionMap gdm WHERE dm.language = 'DE' and gdm.language = 'DE' ORDER BY ";
122 queryString = queryString + field + " " + order;
123 Query query = entityManager.createQuery(queryString);
124 query.setFirstResult(start);
125 query.setMaxResults(max);
126 return query.getResultList();
127 }
128
129 @SuppressWarnings("unchecked")
130 @Override
131 public List<Picture> findAll(Integer start, Integer max, String galleryUuid, String field, String order) {
132 String queryString = "SELECT DISTINCT p FROM Picture p JOIN p.descriptionMap dm WHERE p.gallery.uuid = :galleryUuid AND dm.language = 'DE' ORDER BY ";
133 queryString = queryString + field + " " + order;
134 Query query = entityManager.createQuery(queryString);
135 query.setFirstResult(start);
136 query.setMaxResults(max);
137 query.setParameter("galleryUuid", galleryUuid);
138 return query.getResultList();
139 }
140
141 @Override
142 public Picture findPreviousPicture(Integer start, String galleryUuid) {
143 Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber desc");
144 query.setFirstResult(start);
145 query.setMaxResults(1);
146 query.setParameter("galleryUuid", galleryUuid);
147 return (Picture)query.getSingleResult();
148 }
149
150 @Override
151 public Picture findCurrentPicture(Integer start, String galleryUuid) {
152 LOGGER.info("findCurrentPicture(Integer start, String galleryUuid) aufgerufen");
153 Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber, p.uuid desc");
154 query.setFirstResult(start);
155 query.setMaxResults(1);
156 query.setParameter("galleryUuid", galleryUuid);
157 return (Picture)query.getResultList().get(0);
158 }
159
160 @Override
161 public Picture findNextPicture(Integer start, String galleryUuid) {
162 Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber desc");
163 query.setFirstResult(start);
164 query.setMaxResults(1);
165 query.setParameter("galleryUuid", galleryUuid);
166 return (Picture)query.getSingleResult();
167 }
168
169
170
171
172 @Override
173 public Integer countAll() {
174 Query query = entityManager.createQuery("Select Count(p) from Picture p");
175 return Integer.parseInt(query.getSingleResult().toString());
176 }
177
178 @Override
179 public Integer countAllInGallery(String galleryUuid) {
180 Query query = entityManager.createQuery("Select Count(p) from Picture p where p.gallery.uuid = :galleryUuid");
181 query.setParameter("galleryUuid", galleryUuid);
182 return Integer.parseInt(query.getSingleResult().toString());
183 }
184
185 }