Select em uma view?

Bom Dia…

Pessoal eu tenho uma pkg(consulta,cursor) no banco que eu quero trazer para o meu projeto:
É uma pesquisa com 2 campos, pesquisa por cpf e pesquisa por contrato, eu dou um select na vw_usuarios, incluindo algumas tabelas passando o CPF como parâmetro, e algumas condições. A pesquisa de contrato também é parecida.

A pergunta é : Tenho que mapear a View, tenho que mapear todas as tabelas da View ? Como ficaria a minha Critéria ? Estou no fim da documentação e não achei nada do tipo !

Obrigado.

       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;

Você pode simplesmente criar uma entidade na mão pra sua view e mapear os campos, vai funcionar como uma entidade normal, você só tem que especificar os campos pela annotção @Column(name=""), facil assim :lol:

Andre !

Bom Dia !

Obrigado pela dica, até ai eu já fiz !

E a critéria ? da para usar ?

meu @inject :

@Override
	public String getPessoaPorCpfCnpj(String cpfCnpj) {
		Pessoa pessoa = inssFacade.getPessoaPorCpfCnpj(cpfCnpj);
		return new Gson().toJson(pessoa);
	}

@Override public StatusDigitalUsuarioPlano getStatusDigital(String cpfCnpj) { Query query = entityManager .createNamedQuery("StatusDigitalUsuarioPlano.listarStatusPorNomePessoa"); query.setParameter("cpfCnpj", cpfCnpj); Object result = null; try { result = query.getSingleResult(); } catch (NoResultException e) { // nada a fazer } return result == null ? null : (StatusDigitalUsuarioPlano) result; }

Se os campos retornados forem os mesmos, sim funciona. Parte do principio do mapeamento isso:

suponto que tu tem essa query (que você fará com criteria):

SELECT nome as nomeDoCara, idade as idadeDoCaba FROM tabela

e o bean:

[code]@ID
@Column(name=“nomeDoCara”)
private String nome;
@Column(name=“idadeDoCaba”)
private int idade;

…[/code]

o princípio não é pegar o resultado retornado para o código e ser mapeado direto na coluna da entidade? Para isso que é a annotation, então, funciona sem probs.

Bom Dia Andre !

as tabela que eu fiz o mapa são :

from vw_usuarios u ,tb_tipo_rede_atendimento r ,tb_plano_pai pp ,tb_plano p

Repara que a view ta no meio…
O problema são so AND !

pois tem uma porrada de validação, se fulano = 2
se siclano <> ODONTOLOGIA

Acho que isso não da para fazer usando critéria !

Abraço e obrigado !

Como eu já fiz a : procedure pl sql, acho que vou mandar a porra toda para lá… e deixar o oracle se virar nos 30 ! plsql e mais fácil que java !

ahhahah