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