Hlasování: zobrazujeme grafy na základě hlasování uloženého v databázi.
1 package cz.frantovo.nekurak.dao;
3 import cz.frantovo.nekurak.dto.Podnik;
4 import cz.frantovo.nekurak.dto.VysledekHlasovani;
5 import cz.frantovo.superDAO.SuperDAO;
6 import java.math.BigInteger;
7 import java.util.Collection;
10 import javax.ejb.LocalBean;
11 import javax.ejb.Stateless;
12 import javax.persistence.EntityManager;
13 import javax.persistence.PersistenceContext;
14 import javax.persistence.Query;
22 public class PodnikDAO extends SuperDAO {
24 @PersistenceContext(unitName = DAO.PU)
25 private EntityManager em;
33 public Collection<Podnik> getPodniky() {
34 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
35 return dotaz.getResultList();
39 * @return podniky, které nemají souřadnice (null, null)
41 public Collection<Podnik> getPodnikyBezSouradnic() {
42 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o WHERE sirka IS NULL AND delka IS NULL");
43 return dotaz.getResultList();
46 public Podnik getPodnik(int id) {
47 return em.find(Podnik.class, id);
50 public void zaloz(Podnik p) {
51 if (p.getDatum() == null) {
52 p.setDatum(new Date());
58 public void uloz(Podnik p) {
59 if (p.getDatum() == null) {
60 p.setDatum(new Date());
66 public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
67 Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
68 insert.setParameter("podnik", podnik);
69 insert.setParameter("hlas", hlas);
70 insert.setParameter("ip_adresa", ipAdresa);
71 insert.executeUpdate();
74 public VysledekHlasovani getVysledekHlasovani(int podnik) {
75 VysledekHlasovani vysledek = new VysledekHlasovani();
76 Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
77 select.setParameter("podnik", podnik);
78 List<Object[]> vysledekDotazu = select.getResultList();
80 log.severe("Vracím výsledky pro podnik: " + podnik);
82 for (Object[] radek : vysledekDotazu) {
83 /** Transponujeme výsledek dotazu */
84 if ((Boolean) radek[0]) {
85 vysledek.setHlasuAno((Integer) radek[1]);
87 vysledek.setHlasuNe((Integer) radek[1]);