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();
}
}
}