Salome HOME
Add study
[modules/gde.git] / projects / GDE_App / GDE-ejb / src / java / com / edf / gde / ejb / StudyDAO.java
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 package com.edf.gde.ejb;
7
8 import com.edf.gde.entities.Study;
9 import com.edf.gde.transferables.StudyTO;
10 import java.util.Date;
11 import javax.ejb.Stateless;
12 import javax.ejb.LocalBean;
13 import javax.persistence.EntityManager;
14 import javax.persistence.PersistenceContext;
15
16 /**
17  *
18  * @author F62173
19  */
20 @Stateless
21 @LocalBean
22 public class StudyDAO {
23     @PersistenceContext(unitName = "GDE-ejbPU")
24     private EntityManager em;
25     
26     public StudyTO createStudy(StudyTO sto) {
27         Study s = Study.fromStudyTO(sto);
28         em.persist(s);
29         return s.toStudyTO();
30     }
31
32     public void deleteStudy(StudyTO sto) {
33         Study s = Study.fromStudyTO(sto);
34         em.remove(s);
35     }
36  
37     public StudyTO updateStudy(StudyTO sto) {
38         Study s = Study.fromStudyTO(sto);
39         Study up = em.merge(s);
40         return up.toStudyTO();
41     }
42     
43     public StudyTO findStudy(StudyTO sto) {
44         Study found = em.find(Study.class, sto.getId());
45         return found.toStudyTO();
46     }
47     
48     private <T> StudyTO findBy(String queryName, String varName, T value) {
49         try {
50             Study found = (Study) em.createNamedQuery(queryName)
51                                     .setParameter(varName, value)
52                                     .getSingleResult();
53             return found.toStudyTO();
54         }
55         catch (Exception e) {
56             return null;
57         }
58     }
59     
60     public StudyTO findById(long id) {
61         return findBy("Study.findById", "id", id);
62     }
63     
64     public StudyTO findByName(String name) {
65         return findBy("Study.findByName", "name", name);
66     }
67     
68     public StudyTO findByCreationDate(Date creationDate) {
69         return findBy("Study.findByCreationDate", "creationDate", creationDate);
70     }
71     
72     public StudyTO findByUpdateDate(Date updateDate) {
73         return findBy("Study.findByUpdateDate", "updateDate", updateDate);
74     }
75     
76     public StudyTO findByDeletionDate(Date deletionDate) {
77         return findBy("Study.findByDeletionDate", "deletionDate", deletionDate);
78     }
79     
80 }