Subversion Repositories Integrator Subversion

Rev

Rev 439 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
265 espaco 1
package br.com.ec.repository.jpa;
2
 
3
import java.util.List;
4
 
5
import org.springframework.stereotype.Repository;
6
 
7
import br.com.ec.domain.dto.VigenciaDTO;
8
import br.com.ec.domain.model.Vigencia;
9
import br.com.ec.repository.SistemaAbstractRepository;
10
import br.com.ec.repository.VigenciaRepository;
11
 
12
@Repository
13
public class VigenciaRepositoryJpaImpl extends SistemaAbstractRepository<Vigencia> implements VigenciaRepository {
14
 
15
        @Override
16
        protected String getColunaOrdenadora() {
17
                return "sequencial DESC";
18
        }
19
 
20
        @Override
21
        protected boolean adicionarDistinct() {
22
                return false;
23
        }
24
 
25
        @Override
26
        public List<VigenciaDTO> consultarVigencias() {
27
                StringBuilder jpql = new StringBuilder();
28
                jpql.append("SELECT new br.com.ec.domain.dto.VigenciaDTO(v.sequencial, v.descricao, v.dataInicio, v.dataFim) ");
29
                jpql.append("FROM Vigencia v ");
30
                jpql.append("ORDER BY v.dataInicio DESC");
31
                try {
32
                        return getEntityManager().createQuery(jpql.toString(), VigenciaDTO.class).getResultList();
33
                } catch(Exception ex) {
34
                        ex.printStackTrace();
35
                        return null;
36
                }
37
        }
38
 
39
        /*
40
        @Override
41
        public List<Vigencia> consultarVigenciasSemAvaliacoes() {
42
                StringBuilder sql = new StringBuilder();
43
                sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
44
                sql.append("ORDER BY e.dataInicio DESC");
45
                try {
46
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
47
                } catch(Exception ex) {
48
                        ex.printStackTrace();
49
                        return null;
50
                }
51
        }
52
 
53
        @Override
54
        public List<Vigencia> consultarUltimasVigencias() {
55
                StringBuilder sql = new StringBuilder();
56
                sql.append("SELECT e FROM Vigencia e ");
57
                sql.append("ORDER BY e.dataInicio DESC");
58
                try {
59
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
60
                } catch(Exception ex) {
61
                        ex.printStackTrace();
62
                        return null;
63
                }
64
        }
65
 
66
        @Override
67
        public Vigencia consultarVigenciaDoPeriodo(Date periodo) {
68
                StringBuilder sql = new StringBuilder();
69
                sql.append("SELECT e FROM Vigencia e WHERE e.dataInicio <= :periodo AND e.dataFim >= :periodo ");
70
                try {
71
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("periodo", periodo).getSingleResult();
72
                } catch(Exception ex) {
73
                        ex.printStackTrace();
74
                        return null;
75
                }
76
        }
77
 
78
        @Override
79
        public Vigencia consultarProximaVigencia(Vigencia vigencia) {
80
                StringBuilder sql = new StringBuilder();
81
                sql.append("SELECT e FROM Vigencia e WHERE e.sequencial = :sequencial ");
82
                try {
83
                        return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("sequencial", vigencia.getSequencial() + 1).getSingleResult();
84
                } catch(Exception ex) {
85
                        ex.printStackTrace();
86
                        return null;
87
                }
88
        }
89
 
90
        @Override
91
        public List<Vigencia> consultarVigenciasDoAno(String ano) {
92
                StringBuilder sql = new StringBuilder();
93
                sql.append("SELECT e FROM Vigencia e ");
94
                sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
95
                sql.append("ORDER BY e.dataInicio");
96
                try {
97
                        Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
98
                        Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
99
                        TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
100
                        query.setParameter("dataInicial", dataInicial);
101
                        query.setParameter("dataFinal", dataFinal);
102
                        return query.getResultList();
103
                } catch(Exception ex) {
104
                        ex.printStackTrace();
105
                        return null;
106
                }
107
        }
108
        */
109
}