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