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