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