Boa Tarde !
Grande parte dos sistemas que trabalho é legado, e é oracle, geralmente faço tudo no PLSQL oracle.
Quando não uso uma critéria…
Estou lendo alguns tutoriais para melhorar o desempenho das minhas pesquisa, mas a minha dúvida e sobre ESTRUTURA.
IMAGINA SENÁRIO. <<<---- aqui é Cenário ! obrigado jakefrog
uma procedure que eu levo para dentro do meus sistema, tirando do oracle !
cursor filtroCpf is
--colocada para tirar tipo de atendimento odontologia
select u.nm_pessoa_razao_social_u
,u.cd_usuario
,u.fl_tipo_pessoa_u
from vw_usuarios u
,tb_tipo_rede_atendimento r
,tb_plano_pai pp
,tb_plano p
where
u.nu_cgc_cpf_t = to_number(pNu_Cpf)
and u.fl_status_usuario = 2
and p.cd_plano = u.cd_plano
and pp.cd_plano_pai = p.cd_plano_pai
and r.cd_tipo_rede_atendimento = pp.cd_tipo_rede_atendimento
and pp.cd_tipo_rede_atendimento <> 'OD'
and r.ds_tipo_rede_atendimento <> 'ODONTOLOGIA';
1 - coisa que eu fiz, mapeamento de todas as tabelas e da view !
2- No meu RepositorioBeans fiz isso:
//observe que aqui eu coloco o nome da view e nao o nome da tabela usuario.. isso ta certo ?
public List ValidaUsuariosCpf(VwUsuarios vwusuarios)throws Exception{
try {
Session session = (Session) getSession();
StringBuilder hql = new StringBuilder();
hql.append(" SELECT");
hql.append(" u.nm_pessoa_razao_social_u");
hql.append(" u.cd_usuario");
hql.append(" u.fl_tipo_pessoa_u");
hql.append(" FROM");
hql.append(" VW_USUARIOS u,");
hql.append(" TB_TIPO_REDE_ATENDIMENTO r,");
hql.append(" TB_PLANO_PAI pp,");
hql.append(" TB_PLANO p");
hql.append(" WHERE");
hql.append(" u.nu_cgc_cpf_t = :nuCgcCpf");
hql.append(" AND");
hql.append(" u.fl_status_usuario = 2");
hql.append(" AND");
hql.append(" cd_plano = cd_plano");
hql.append(" AND");
hql.append(" p.cd_plano = u.cd_plano");
hql.append(" AND");
hql.append(" pp.cd_plano_pai = p.cd_plano_pai");
hql.append(" AND");
hql.append(" r.cd_tipo_rede_atendimento = pp.cd_tipo_rede_atendimento");
hql.append(" AND");
hql.append(" pp.cd_tipo_rede_atendimento <> 'OD' ");
hql.append(" AND");
hql.append(" r.ds_tipo_rede_atendimento <> 'ODONTOLOGIA");
Query query= (Query) session.createQueue(hql.toString());
query.setParameter("nuCgcCpf", vwusuarios.getNuCgcCpf());
return null;
} catch (Exception e) {
throw new Exception("Erro ao buscar CPF " + e.getMessage());
}
}
O que ocorre agora e que tenho que fazer algo tipo, isso me deixou confuso…
Alguém poderia da uma resposta ?
POR QUE PRECISA DISTO ? DENTRO DO MAPEAMENTO DA VIEW ?
public VwUsuarios getValidaUsuarios(String nuCgcCpf) {
return this.getValidaUsuarios(nuCgcCpf);
}