View Javadoc

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   * @author Marc Michele
20   *
21   */
22  @Stateless
23  public class VacancyDao implements VacancyDaoLocal {
24  
25      /*
26       * Statischer Logger der Klasse.
27       */
28      private static final Logger LOGGER = LogManager.getLogger(VacancyDao.class);
29  
30      /*
31       * EntityManager der Dao Klasse.
32       */
33      @PersistenceContext
34      private EntityManager entityManager;
35  
36      /* (non-Javadoc)
37       * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#save(de.tivsource.page.entity.vacancy.Vacancy)
38       */
39      @Override
40      public void save(Vacancy vacancy) {
41          LOGGER.info("save(Vacancy vacancy) aufgerufen");
42          entityManager.persist(vacancy);
43      }
44  
45      /* (non-Javadoc)
46       * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#merge(de.tivsource.page.entity.vacancy.Vacancy)
47       */
48      @Override
49      public void merge(Vacancy vacancy) {
50          LOGGER.info("merge(Vacancy vacancy) aufgerufen");
51          entityManager.merge(vacancy);
52      }
53  
54      /* (non-Javadoc)
55       * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#delete(de.tivsource.page.entity.vacancy.Vacancy)
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      /* (non-Javadoc)
70       * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#findByUuid(java.lang.String)
71       */
72      @Override
73      public Vacancy findByUuid(String uuid) {
74          return entityManager.find(Vacancy.class, uuid);
75      }
76  
77      /* (non-Javadoc)
78       * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
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      /* (non-Javadoc)
100      * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
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     /* (non-Javadoc)
114      * @see de.tivsource.page.dao.vacancy.VacancyDaoLocal#countAll()
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 }// Ende class