java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java
changeset 108 f74a9fc683da
parent 107 e8371105fcc8
child 110 c2590a59a02a
     1.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Tue Apr 27 16:13:36 2010 +0200
     1.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java	Tue Apr 27 17:13:23 2010 +0200
     1.3 @@ -2,9 +2,11 @@
     1.4  
     1.5  import cz.frantovo.nekurak.dto.Podnik;
     1.6  import cz.frantovo.nekurak.dto.VysledekHlasovani;
     1.7 +import cz.frantovo.superDAO.SuperDAO;
     1.8 +import java.math.BigInteger;
     1.9  import java.util.Collection;
    1.10  import java.util.Date;
    1.11 -import java.util.logging.Logger;
    1.12 +import java.util.List;
    1.13  import javax.ejb.LocalBean;
    1.14  import javax.ejb.Stateless;
    1.15  import javax.persistence.EntityManager;
    1.16 @@ -17,12 +19,17 @@
    1.17   */
    1.18  @Stateless
    1.19  @LocalBean
    1.20 -public class PodnikDAO {
    1.21 +public class PodnikDAO extends SuperDAO {
    1.22  
    1.23 -    private static final Logger log = Logger.getLogger(PodnikDAO.class.getSimpleName());
    1.24      @PersistenceContext(unitName = DAO.PU)
    1.25      private EntityManager em;
    1.26  
    1.27 +    private enum SQL {
    1.28 +
    1.29 +	HLASOVANI_INSERT,
    1.30 +	HLASOVANI_SELECT
    1.31 +    }
    1.32 +
    1.33      public Collection<Podnik> getPodniky() {
    1.34  	Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
    1.35  	return dotaz.getResultList();
    1.36 @@ -57,7 +64,7 @@
    1.37      }
    1.38  
    1.39      public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
    1.40 -	Query insert = em.createNativeQuery("INSERT INTO hlasovani (podnik, hlas, ip_adresa) VALUES (:podnik, :hlas, :ip_adresa);");
    1.41 +	Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
    1.42  	insert.setParameter("podnik", podnik);
    1.43  	insert.setParameter("hlas", hlas);
    1.44  	insert.setParameter("ip_adresa", ipAdresa);
    1.45 @@ -65,7 +72,22 @@
    1.46      }
    1.47  
    1.48      public VysledekHlasovani getVysledekHlasovani(int podnik) {
    1.49 -	log.severe("TODO: vracet skutečné výsledky z databáze");
    1.50 -	return new VysledekHlasovani(10, 50);
    1.51 +	VysledekHlasovani vysledek = new VysledekHlasovani();
    1.52 +	Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
    1.53 +	select.setParameter("podnik", podnik);
    1.54 +	List<Object[]> vysledekDotazu = select.getResultList();
    1.55 +
    1.56 +	log.severe("Vracím výsledky pro podnik: " + podnik);
    1.57 +
    1.58 +	for (Object[] radek : vysledekDotazu) {
    1.59 +	    /** Transponujeme výsledek dotazu */
    1.60 +	    if ((Boolean) radek[0]) {
    1.61 +		vysledek.setHlasuAno((Integer) radek[1]);
    1.62 +	    } else {
    1.63 +		vysledek.setHlasuNe((Integer) radek[1]);
    1.64 +	    }
    1.65 +	}
    1.66 +
    1.67 +	return vysledek;
    1.68      }
    1.69  }