[img]https://lh6.googleusercontent.com/-wPwlLrEf4Eg/UAlqgUxrOgI/AAAAAAAAIDg/KY-W_pb5n_8/s587/m1.png[/img]
São 2 pesquisas uma para cada campo, quer dizer são 2 parametros de entrada 1 para cada pesquisa por cpf (pNu_Cpf) e por codigo (pContrato)
A perguta é como fazer uma critéria ou HQL, para campos diferentes e para pesquisas diferentes ?
Mas eu uso um unico botão para ativar o evento.
Eu tenho uma View no meio que faz todo serviço, ela ta no meio do select, eu fiz uma mapa dela, ta ok.
Esses campos são da View grande parte deles !
Eu fiz esse curso e rodei, me traz perfeitamente o que eu quero.. PLSQL e Fodástico !
QUERO FAZER UMA PESQUISA DINÂMICA !
Obrigado..
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';
ESTE AQUI FOI UM TESTE QUE FIZ:
@SuppressWarnings("rawtypes")
@Name(value = "usuarioService")
public class UsuarioServiceImpl extends AppServiceImpl{
static final long serialVersionUID = 1L;
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.createQuery(hql.toString());
query.setParameter("nuCgcCpf", vwusuarios.getNuCgcCpf());
return query.list();
} catch (Exception e) {
throw new Exception("Erro ao buscar CPF " + e.getMessage());
}
}
}