Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.com.ec.repository.jpa;

import java.util.List;

import javax.persistence.Query;
import javax.persistence.TypedQuery;

import org.springframework.stereotype.Repository;

import br.com.ec.domain.dto.EnderecoDTO;
import br.com.ec.domain.model.Endereco;
import br.com.ec.repository.EnderecoRepository;
import br.com.ec.repository.SistemaAbstractRepository;

@Repository
public class EnderecoRepositoryJpaImpl extends SistemaAbstractRepository<Endereco> implements EnderecoRepository {
       
        @Override
        protected String getColunaOrdenadora() {
                return "sequencial";
        }
       
        private void setarStringParametrosConsultar(StringBuilder sql, EnderecoDTO entidade) {
                /*
                if (VerificadorUtil.naoEstaNuloOuVazio(entidade)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(entidade.getNome())) {
                                sql.append("AND ");
                                sql.append(sqlConsultarSemAcento("e.pessoa.nome"));
                                sql.append(" LIKE UPPER(:nome) ");
                        }
                        if (VerificadorUtil.naoEstaNulo(entidade.getFuncionarioAdmitido())) {
                                sql.append("AND ");
                                if (entidade.getFuncionarioAdmitido()) {
                                        sql.append("e.demissao IS NULL OR e.demissao IS EMPTY ");
                                } else {
                                        sql.append("e.demissao IS NOT NULL ");
                                }
                        }
                }
                */

        }
       
        private void setarQueryParametrosConsultar(Query query, EnderecoDTO entidade) {
                /*
                if (VerificadorUtil.naoEstaNuloOuVazio(entidade)) {
                        if (VerificadorUtil.naoEstaNuloOuVazio(entidade.getNome())) {
                                query.setParameter("nome", "%" + removerAcentuacao(entidade.getNome()) + "%");
                        }
                }
                */

        }
       
        @Override
        public List<EnderecoDTO> consultarEnderecosDaPessoa(Long sequencialPessoa) {
                StringBuilder jpql = new StringBuilder();
                jpql.append("SELECT new br.com.ec.domain.dto.EnderecoDTO(");
                jpql.append(EnderecoDTO.CONSULTA_DTO_COMPLETA);
                jpql.append(") FROM Endereco e ");
                jpql.append("WHERE e.pessoa.sequencial = :sequencialPessoa ");
                jpql.append("ORDER BY e.sequencial ");
                try {
                        TypedQuery<EnderecoDTO> query = getEntityManager().createQuery(jpql.toString(), EnderecoDTO.class);
                        query.setParameter("sequencialPessoa", sequencialPessoa);
                        return query.getResultList();
                } catch(Exception ex) {
                        ex.printStackTrace();
                        return null;
                }
        }
       
        @Override
        public void excluirEndereco(Integer sequencialEndereco) {
                StringBuilder sql = new StringBuilder();
                sql.append("DELETE FROM Endereco e ");
                sql.append("WHERE e.sequencial = :sequencialEndereco");
                try {
                        getEntityManager().createQuery(sql.toString())
                                .setParameter("sequencialEndereco", sequencialEndereco)
                                .executeUpdate();
                        getEntityManager().flush();
                } catch(Exception ex) {
                        ex.printStackTrace();
                }
        }
       
}