Rev 523 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.repository.jpa;
import java.util.List;
import org.springframework.stereotype.Repository;
import br.com.ec.domain.dto.VigenciaDTO;
import br.com.ec.domain.model.Vigencia;
import br.com.ec.repository.SistemaAbstractRepository;
import br.com.ec.repository.VigenciaRepository;
@Repository
public class VigenciaRepositoryJpaImpl
extends SistemaAbstractRepository
<Vigencia
> implements VigenciaRepository
{
@
Override
protected String getColunaOrdenadora
() {
return "sequencial DESC";
}
@
Override
protected boolean adicionarDistinct
() {
return false;
}
@
Override
public List<VigenciaDTO
> consultarVigencias
() {
StringBuilder jpql =
new StringBuilder();
jpql.
append("SELECT new br.com.ec.domain.dto.VigenciaDTO(v.sequencial, v.descricao, v.dataInicio, v.dataFim) ");
jpql.
append("FROM Vigencia v ");
jpql.
append("ORDER BY v.dataInicio DESC");
try {
return getEntityManager
().
createQuery(jpql.
toString(), VigenciaDTO.
class).
getResultList();
} catch(Exception ex
) {
ex.
printStackTrace();
return null;
}
}
/*
@Override
public List<Vigencia> consultarVigenciasSemAvaliacoes() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e WHERE (SELECT COUNT(*) FROM Avaliacao a WHERE a.vigencia.sequencial = e.sequencial) = 0 ");
sql.append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public List<Vigencia> consultarUltimasVigencias() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e ");
sql.append("ORDER BY e.dataInicio DESC");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).setMaxResults(5).getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public Vigencia consultarVigenciaDoPeriodo(Date periodo) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e WHERE e.dataInicio <= :periodo AND e.dataFim >= :periodo ");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("periodo", periodo).getSingleResult();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public Vigencia consultarProximaVigencia(Vigencia vigencia) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e WHERE e.sequencial = :sequencial ");
try {
return getEntityManager().createQuery(sql.toString(), Vigencia.class).setParameter("sequencial", vigencia.getSequencial() + 1).getSingleResult();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
@Override
public List<Vigencia> consultarVigenciasDoAno(String ano) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT e FROM Vigencia e ");
sql.append("WHERE :dataInicial <= e.dataInicio AND :dataFinal >= e.dataFim ");
sql.append("ORDER BY e.dataInicio");
try {
Date dataInicial = DataUtils.getPrimeiroDiaDoAno(new Integer(ano));
Date dataFinal = DataUtils.getUltimoDiaDoAno(new Integer(ano));
TypedQuery<Vigencia> query = (TypedQuery<Vigencia>) getEntityManager().createQuery(sql.toString(), Vigencia.class);
query.setParameter("dataInicial", dataInicial);
query.setParameter("dataFinal", dataFinal);
return query.getResultList();
} catch(Exception ex) {
ex.printStackTrace();
return null;
}
}
*/
}