From 1ac018018b061d9757a4538d534ae5cefb53eefc Mon Sep 17 00:00:00 2001 From: Falucho <german.faller@pcunix71.fing.edu.uy> Date: Mon, 24 Jun 2019 14:23:16 -0300 Subject: [PATCH] Se sigue trabajando en el modelo --- .../fing/tse/central/db/dao/GenericDao.java | 2 +- .../db/dao/category/CategoryDAOBean.java | 53 +++++++++++++++++++ .../db/dao/category/CategoryDaoLocal.java | 11 ++++ .../tse/central/db/dao/fact/FactDAOBean.java | 28 +++++++++- .../tse/central/db/dao/fact/FactDaoLocal.java | 11 ---- .../tse/central/db/dao/role/RoleDAOBean.java | 3 +- .../central/db/dao/score/ScoreDAOBean.java | 3 +- .../central/db/dao/state/StateDAOBean.java | 3 +- .../tse/central/db/dao/user/UserDAOBean.java | 12 +++-- .../edu/fing/tse/central/db/entity/Hecho.java | 2 +- .../central/db/entity/TransicionEstado.java | 6 +-- .../tse/central/business/BusinessBean.java | 11 ++-- .../tse/central/business/startup/Config.java | 13 +++-- 13 files changed, 120 insertions(+), 38 deletions(-) create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java index ad8e199..8db42f3 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java @@ -4,7 +4,7 @@ import java.util.List; public interface GenericDao<T> { - void create(T elem); + T create(T elem); T find(String key); diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java new file mode 100644 index 0000000..cbe49ad --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java @@ -0,0 +1,53 @@ +package uy.edu.fing.tse.central.db.dao.category; + +import uy.edu.fing.tse.central.db.entity.Categoria; +import uy.edu.fing.tse.central.db.mapper.MyMapper; +import uy.edu.fing.tse.dto.Category; + +import javax.annotation.PostConstruct; +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import java.util.List; +import java.util.stream.Collectors; + +@Stateless +public class CategoryDAOBean implements CategoryDaoLocal { + + @PersistenceContext(unitName = "central") + private EntityManager em; + + @PostConstruct + void init() { + //Despues del constructor hace esto + } + + @Override + public Category create(Category elem) { + final var r = MyMapper.INSTANCE.convert(elem); + em.persist(r); + em.flush(); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public Category find(String key) { + final var query = em.createNamedQuery("Categoria.findByName", Categoria.class); + query.setParameter("name", key); + final var r = query.getSingleResult(); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public Category find(Long id) { + final var r = em.find(Categoria.class, id); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public List<Category> findAll() { + final var query = em.createNamedQuery("Categoria.findAll", Categoria.class); + final List<Categoria> r = query.getResultList(); + return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList()); + } +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java new file mode 100644 index 0000000..78a1b4e --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java @@ -0,0 +1,11 @@ +package uy.edu.fing.tse.central.db.dao.category; + +import uy.edu.fing.tse.central.db.dao.GenericDao; +import uy.edu.fing.tse.dto.Category; + +import javax.ejb.Local; + +@Local +public interface CategoryDaoLocal extends GenericDao<Category> { + +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java index 7680fa0..7fd371e 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java @@ -1,5 +1,8 @@ package uy.edu.fing.tse.central.db.dao.fact; +import uy.edu.fing.tse.central.db.entity.Calificacion; +import uy.edu.fing.tse.central.db.entity.Categoria; +import uy.edu.fing.tse.central.db.entity.Estado; import uy.edu.fing.tse.central.db.entity.Hecho; import uy.edu.fing.tse.central.db.mapper.MyMapper; import uy.edu.fing.tse.dto.Fact; @@ -26,10 +29,33 @@ public class FactDAOBean implements FactDaoLocal { } @Override - public void create(Fact elem) { + public Fact create(Fact elem) { final var hecho = MyMapper.INSTANCE.convert(elem); + { + final var query = em.createNamedQuery("Estado.findByValue", Estado.class); + query.setParameter("val", elem.getActualState().getValue()); + final var e = query.getSingleResult(); + hecho.setActualState(e); + } + + if (elem.getScore() != null) { + final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class); + query.setParameter("val", elem.getScore().getValue()); + final var s = query.getSingleResult(); + hecho.setScore(s); + } + + if (elem.getCategory() != null) { + final var query = em.createNamedQuery("Categoria.findByName", Categoria.class); + query.setParameter("name", elem.getCategory().getName()); + final var c = query.getSingleResult(); + hecho.setCategory(c); + } + em.persist(hecho); em.flush(); + + return MyMapper.INSTANCE.convert(hecho); } @Override diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java index 6165408..6cfe740 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java @@ -9,17 +9,6 @@ import java.util.List; @Local public interface FactDaoLocal extends GenericDao<Fact> { - @Override - void create(Fact elem); - - @Override - Fact find(String key); - - @Override - Fact find(Long id); - - @Override - List<Fact> findAll(); List<Fact> search(String value, String state, Date after, Date before); diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java index b59a80e..df8e0b8 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java @@ -23,10 +23,11 @@ public class RoleDAOBean implements RoleDaoLocal { } @Override - public void create(Role elem) { + public Role create(Role elem) { final var r = MyMapper.INSTANCE.convert(elem); em.persist(r); em.flush(); + return MyMapper.INSTANCE.convert(r); } @Override diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java index 3f7a648..c7114ec 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java @@ -23,10 +23,11 @@ public class ScoreDAOBean implements ScoreDaoLocal { } @Override - public void create(Score elem) { + public Score create(Score elem) { final var r = MyMapper.INSTANCE.convert(elem); em.persist(r); em.flush(); + return MyMapper.INSTANCE.convert(r); } @Override diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java index 9da50e1..2597912 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java @@ -23,10 +23,11 @@ public class StateDAOBean implements StateDaoLocal { } @Override - public void create(State elem) { + public State create(State elem) { final var r = MyMapper.INSTANCE.convert(elem); em.persist(r); em.flush(); + return MyMapper.INSTANCE.convert(r); } @Override diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java index 43569f1..8a1325e 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java @@ -27,18 +27,19 @@ public class UserDAOBean implements UserDaoLocal { @Override - public void create(User user) { - if (user instanceof UserBO) _register((UserBO) user); - else _register((UserFO) user); + public User create(User user) { + if (user instanceof UserBO) return _register((UserBO) user); + else return _register((UserFO) user); } - public void _register(UserFO user) { + private UserFO _register(UserFO user) { final var newUser = MyMapper.INSTANCE.convert(user); em.persist(newUser); em.flush(); + return MyMapper.INSTANCE.convert(newUser); } - private void _register(UserBO user) { + private UserBO _register(UserBO user) { final var newUser = MyMapper.INSTANCE.convert(user); final var query = em.createNamedQuery("Rol.findByName", Rol.class); @@ -48,6 +49,7 @@ public class UserDAOBean implements UserDaoLocal { em.persist(newUser); em.flush(); + return MyMapper.INSTANCE.convert(newUser); } @Override diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java index 6f78c68..c2acb88 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java @@ -30,7 +30,7 @@ public final class Hecho { @ManyToOne private Categoria category; - @OneToMany + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) private List<TransicionEstado> history = new ArrayList<>(); public Long getId() { diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java index ccd799f..cb972dd 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java @@ -10,13 +10,13 @@ public class TransicionEstado { @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @ManyToOne(optional = false) + @ManyToOne(optional = false, fetch = FetchType.EAGER) private Estado state; - @ManyToOne(optional = false) + @ManyToOne(optional = false, fetch = FetchType.EAGER) private Usuario user; - @ManyToOne(optional = false) + @ManyToOne(optional = false, fetch = FetchType.EAGER) private Hecho fact; @Column(nullable = false) diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java index d03b704..178b570 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java @@ -10,7 +10,6 @@ import uy.edu.fing.tse.central.db.dao.state.StateDaoLocal; import uy.edu.fing.tse.central.db.dao.user.UserDaoLocal; import uy.edu.fing.tse.dto.*; -import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.ejb.Stateless; import java.util.List; @@ -32,10 +31,6 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { @EJB private ScoreDaoLocal calificacion; - @PostConstruct - void init() { - //Despues Hace esto - } @Override public void altaPeriferico(Peripherical p) { @@ -54,7 +49,11 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { @Override public void altaHecho(Fact fact) { - hechos.create(fact); + final var history = fact.getHistory(); + fact.setHistory(null); + final var fact1 = hechos.create(fact); + LOG.info(""); + //hechos.find(fact.getTitle()); } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java index 9867e16..f5a9896 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java @@ -26,7 +26,7 @@ public class Config { initUsers(); initEstados(); initScore(); - //initFacts(); + initFacts(); } @PreDestroy @@ -150,14 +150,14 @@ public class Config { estados[0] = "Verificado"; estados[1] = "Verificado"; - estados[2] = "No Verificado"; - estados[3] = "No Verificado"; - estados[4] = "No Verificado"; + estados[2] = "Nuevo"; + estados[3] = "Nuevo"; + estados[4] = "Nuevo"; estados[5] = "Verificado"; estados[6] = "Verificado"; - estados[7] = "No Verificado"; + estados[7] = "Nuevo"; estados[8] = "Verificado"; - estados[9] = "No Verificado"; + estados[9] = "Nuevo"; for (int i = 0; i < 10; i++) { State actualState = new State(); @@ -171,7 +171,6 @@ public class Config { sh.setDate(new Date()); UserBO u = new UserBO(); u.setPassword("admin"); - u.setMail("admin"); sh.setUser(u); //sh.setFact(fact); fact.addHistory(sh); -- GitLab