Adaptér pro Texy (volání vzdálené služby) + základní testy.
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.util.Collection;
9 import javax.ejb.LocalBean;
10 import javax.ejb.Stateless;
11 import javax.persistence.EntityManager;
12 import javax.persistence.PersistenceContext;
13 import javax.persistence.Query;
21 public class PodnikDAO extends SuperDAO {
23 @PersistenceContext(unitName = DAO.PU)
24 private EntityManager em;
32 public Collection<Podnik> getPodniky() {
33 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
34 return dotaz.getResultList();
38 * @return podniky, které nemají souřadnice (null, null)
40 public Collection<Podnik> getPodnikyBezSouradnic() {
41 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o WHERE sirka IS NULL AND delka IS NULL");
42 return dotaz.getResultList();
45 public Podnik getPodnik(int id) {
46 return em.find(Podnik.class, id);
49 public void zaloz(Podnik p) {
50 if (p.getDatum() == null) {
51 p.setDatum(new Date());
57 public void uloz(Podnik p) {
58 if (p.getDatum() == null) {
59 p.setDatum(new Date());
66 * Zaznamená hlas uživatele, zda se v podniku má nebo nemá kouřit
67 * @param podnik podnik o kterém se hlasuje
68 * @param hlas true = kouřit | false = nekouřit
69 * @param ipAdresa identifikujeme pomocí ní uživatele
71 public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
72 Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
73 insert.setParameter("podnik", podnik);
74 insert.setParameter("hlas", hlas);
75 insert.setParameter("ip_adresa", ipAdresa);
76 insert.executeUpdate();
79 public VysledekHlasovani getVysledekHlasovani(int podnik) {
80 VysledekHlasovani vysledek = new VysledekHlasovani();
81 Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
82 select.setParameter("podnik", podnik);
83 List<Object[]> vysledekDotazu = select.getResultList();
85 for (Object[] radek : vysledekDotazu) {
86 /** Transponujeme výsledek dotazu */
87 if ((Boolean) radek[0]) {
88 vysledek.setHlasuAno((Integer) radek[1]);
90 vysledek.setHlasuNe((Integer) radek[1]);