View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.administration;
5   
6   import java.util.Iterator;
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.entity.administration.Role;
18  import de.tivsource.page.entity.administration.User;
19  
20  /**
21   * @author Marc Michele
22   *
23   */
24  @Stateless
25  public class RoleDao implements RoleDaoLocal {
26  
27      /*
28       * Statischer Logger der Klasse.
29       */
30      private static final Logger LOGGER = LogManager.getLogger(RoleDao.class);
31  
32      /*
33       * EntityManager der Dao Klasse.
34       */
35      @PersistenceContext
36      private EntityManager entityManager;
37  
38      /* (non-Javadoc)
39       * @see de.tivsource.page.dao.administration.RoleDaoLocal#save(de.tivsource.page.entity.administration.Role)
40       */
41      @Override
42      public void save(Role role) {
43          LOGGER.info("save(Role role) aufgerufen");
44          entityManager.persist(role);
45      }
46  
47      /* (non-Javadoc)
48       * @see de.tivsource.page.dao.administration.RoleDaoLocal#merge(de.tivsource.page.entity.administration.Role)
49       */
50      @Override
51      public void merge(Role role) {
52          LOGGER.info("merge(Role role) aufgerufen");
53          entityManager.merge(role);
54      }
55  
56      /* (non-Javadoc)
57       * @see de.tivsource.page.dao.administration.RoleDaoLocal#delete(de.tivsource.page.entity.administration.Role)
58       */
59      @Override
60      public void delete(Role role) {
61          Role dbRole = entityManager.find(Role.class, role.getUuid());
62          Iterator<User> userIterator = dbRole.getUsers().iterator();
63          while(userIterator.hasNext()) {
64              User next = userIterator.next();
65              next.setRoles(null);
66              entityManager.merge(next);
67          }
68          entityManager.remove(entityManager.find(Role.class, role.getUuid()));
69      }
70  
71      /* (non-Javadoc)
72       * @see de.tivsource.page.dao.administration.RoleDaoLocal#findByTechnical(java.lang.String)
73       */
74      @Override
75      public Role findByTechnical(String technical) {
76          Query query = entityManager.createQuery("select r from Role r where r.technical = :technical");
77          query.setParameter("technical", technical);
78          return (Role)query.getSingleResult();
79      }
80  
81      @Override
82      public Role findByUuid(String uuid) {
83          return entityManager.find(Role.class, uuid);
84      }
85  
86      /* (non-Javadoc)
87       * @see de.tivsource.page.dao.administration.RoleDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
88       */
89      @Override
90      @SuppressWarnings("unchecked")
91      public List<Role> findAll(Integer start, Integer max) {
92          Query query = entityManager.createQuery("from Role r");
93          query.setFirstResult(start);
94          query.setMaxResults(max);
95          return query.getResultList();
96      }
97  
98      @SuppressWarnings("unchecked")
99      @Override
100     public List<Role> findAll(Integer start, Integer max, String field,
101             String order) {
102         String queryString = "select r from Role r order by ";
103         queryString = queryString + field + " " + order;
104         Query query = entityManager.createQuery(queryString);
105         query.setFirstResult(start);
106         query.setMaxResults(max);
107         return query.getResultList();
108     }
109 
110     /* (non-Javadoc)
111      * @see de.tivsource.page.dao.administration.RoleDaoLocal#countAll()
112      */
113     @Override
114     public Integer countAll() {
115         Query query = entityManager.createQuery("Select Count(r) from Role r");
116         return Integer.parseInt(query.getSingleResult().toString());
117     }
118 
119 }// Ende class