1
2
3
4 package de.tivsource.page.dao.contentitem;
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.contentitem.ContentItem;
17
18
19
20
21
22 @Stateless
23 public class ContentItemDao implements ContentItemDaoLocal {
24
25
26
27
28 private static final Logger LOGGER = LogManager.getLogger(ContentItemDao.class);
29
30
31
32
33 @PersistenceContext
34 private EntityManager entityManager;
35
36
37
38
39 @Override
40 public ContentItem findByUuid(String uuid) {
41 LOGGER.info("findByUuid(String uuid) aufgerufen");
42 return entityManager.find(ContentItem.class, uuid);
43 }
44
45
46
47
48 @SuppressWarnings("unchecked")
49 @Override
50 public List<ContentItem> findAllVisible(String uuid, Integer start, Integer max) {
51 LOGGER.info("findAll(Integer start, Integer max) aufgerufen");
52 Query query = entityManager.createQuery("from ContentItem ci where ci.uuid != :uuid and ci.visible = 'Y'");
53 query.setParameter("uuid", uuid);
54 query.setFirstResult(start);
55 query.setMaxResults(max);
56 return query.getResultList();
57 }
58
59
60
61
62 @SuppressWarnings("unchecked")
63 @Override
64 public List<ContentItem> findAllUnassigned(Integer start, Integer max) {
65 LOGGER.info("findAllUnassigned(Integer start, Integer max) aufgerufen");
66 Query query = entityManager.createQuery("from ContentItem ci where ci.uuid not in (select ce.contentItem.uuid from ContentEntry ce)");
67 query.setFirstResult(start);
68 query.setMaxResults(max);
69 return query.getResultList();
70 }
71
72
73
74
75 @Override
76 public Integer countAllVisible(String uuid) {
77 Query query = entityManager.createQuery("Select Count(ci) from ContentItem ci where ci.uuid != :uuid and ci.visible = 'Y'");
78 query.setParameter("uuid", uuid);
79 return Integer.parseInt(query.getSingleResult().toString());
80 }
81
82
83
84
85 @Override
86 public Integer countAllUnassigned() {
87 Query query = entityManager.createQuery("Select Count(ci) from ContentItem ci where ci.uuid not in (select uuid from ContentEntry ce)");
88 return Integer.parseInt(query.getSingleResult().toString());
89 }
90
91 }