Hlasování: DAO a EJB vrstva pro ukládání hlasů, kostra pro načítání výsledků hlasování.
1 package cz.frantovo.nekurak.dao;
3 import cz.frantovo.nekurak.dto.Podnik;
4 import cz.frantovo.nekurak.dto.VysledekHlasovani;
5 import java.util.Collection;
7 import java.util.logging.Logger;
8 import javax.ejb.LocalBean;
9 import javax.ejb.Stateless;
10 import javax.persistence.EntityManager;
11 import javax.persistence.PersistenceContext;
12 import javax.persistence.Query;
20 public class PodnikDAO {
22 private static final Logger log = Logger.getLogger(PodnikDAO.class.getSimpleName());
23 @PersistenceContext(unitName = DAO.PU)
24 private EntityManager em;
26 public Collection<Podnik> getPodniky() {
27 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
28 return dotaz.getResultList();
32 * @return podniky, které nemají souřadnice (null, null)
34 public Collection<Podnik> getPodnikyBezSouradnic() {
35 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o WHERE sirka IS NULL AND delka IS NULL");
36 return dotaz.getResultList();
39 public Podnik getPodnik(int id) {
40 return em.find(Podnik.class, id);
43 public void zaloz(Podnik p) {
44 if (p.getDatum() == null) {
45 p.setDatum(new Date());
51 public void uloz(Podnik p) {
52 if (p.getDatum() == null) {
53 p.setDatum(new Date());
59 public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
60 Query insert = em.createNativeQuery("INSERT INTO hlasovani (podnik, hlas, ip_adresa) VALUES (:podnik, :hlas, :ip_adresa);");
61 insert.setParameter("podnik", podnik);
62 insert.setParameter("hlas", hlas);
63 insert.setParameter("ip_adresa", ipAdresa);
64 insert.executeUpdate();
67 public VysledekHlasovani getVysledekHlasovani(int podnik) {
68 log.severe("TODO: vracet skutečné výsledky z databáze");
69 return new VysledekHlasovani(10, 50);