View Javadoc

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