Pessoal sempre usei critéria, mas para alguns casos e melhor Query…
Tenho uma procedure, dentro de um pacote imenso que cospe HTML/ foi uma maneira que encotramos na época, mas agora queremos migrar tudo que é PLSQL/Oracle para java…
Gostaria de Migrar todas as PROCEDURES, já fiz algumas, mas estou com DÚVIDAS nesta :
1 - Fiz Mapeamento das Tabelas envolvidadas no SELECT e da View.
2 - Na View eu tenho alguns campos que tem em algumas das tabelas e redundante mas funciona !
DÚVIDA É :
nos parâmetros eu coloco os campos que vem do formulário ?
estou fazendo assim :
public List ValidaUsuarios(VwUsuarios vwusuarios, Usuario usuario) 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("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", Usuario.getnuCgcCpf());
query.setMaxResults(50);
return null;
} catch (Exception e) {
throw new Exception("Erro ao buscar medicos: " + e.getMessage());
}
}
PROCEDURE selecionaUsuario(pIdSessao IN VARCHAR2 DEFAULT NULL,
pContrato IN VARCHAR2 default '0',
pNu_Cpf IN VARCHAR2 default '0'
) IS
vIdSessao sessao_sec_web.id_sessao%type;
aux number default 0;
auxDep number default 0;
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';
cursor filtroContrato is
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_ordem_usuario = pContrato
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';
REG_cpf filtroCpf%ROWTYPE;
REG_contrato filtroContrato%ROWTYPE;
BEGIN