*/
package com.edf.gde.ejb;
+import com.edf.gde.entities.Study;
+import com.edf.gde.transferables.StudyTO;
+import java.util.Date;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
@PersistenceContext(unitName = "GDE-ejbPU")
private EntityManager em;
+ public StudyTO createStudy(StudyTO sto) {
+ Study s = Study.fromStudyTO(sto);
+ em.persist(s);
+ return s.toStudyTO();
+ }
+
+ public void deleteStudy(StudyTO sto) {
+ Study s = Study.fromStudyTO(sto);
+ em.remove(s);
+ }
+
+ public StudyTO updateStudy(StudyTO sto) {
+ Study s = Study.fromStudyTO(sto);
+ Study up = em.merge(s);
+ return up.toStudyTO();
+ }
+
+ public StudyTO findStudy(StudyTO sto) {
+ Study found = em.find(Study.class, sto.getId());
+ return found.toStudyTO();
+ }
+
+ private <T> StudyTO findBy(String queryName, String varName, T value) {
+ try {
+ Study found = (Study) em.createNamedQuery(queryName)
+ .setParameter(varName, value)
+ .getSingleResult();
+ return found.toStudyTO();
+ }
+ catch (Exception e) {
+ return null;
+ }
+ }
+
+ public StudyTO findById(long id) {
+ return findBy("Study.findById", "id", id);
+ }
+
+ public StudyTO findByName(String name) {
+ return findBy("Study.findByName", "name", name);
+ }
+
+ public StudyTO findByCreationDate(Date creationDate) {
+ return findBy("Study.findByCreationDate", "creationDate", creationDate);
+ }
+
+ public StudyTO findByUpdateDate(Date updateDate) {
+ return findBy("Study.findByUpdateDate", "updateDate", updateDate);
+ }
+
+ public StudyTO findByDeletionDate(Date deletionDate) {
+ return findBy("Study.findByDeletionDate", "deletionDate", deletionDate);
+ }
+
}