Galera, estou com uma dúvida de JPA.
Eu monto meu select no JPA, e preciso chamar uma Function do banco que vai me retornar o que eu precico pra eu montar a clausula WHERE.
Daria pra eu fazer isso?
JPA - chamar Function do banco
5 Respostas
Você deverá utilizar NamedQuery do JPA.
Esse post mostra como utilizar NamedQuery: JPA Consultas e Dicas.
Então jake, o problema é que estou usando o CriteriaQuery e meu select já está pronto. Eu só preciso colocar na clausula where a chamada da function que está no banco.
Se fosse fazer na mão faria:
StringBuilder sql = new StringBuilder();
sql.append(" SELECT CHAMADO.ID_CHMO ");
sql.append(" FROM TSGO_CHMO CHAMADO ");
sql.append(" WHERE SITUACAO_GRUPO_ACESO.ID_STCO = TRAMITACAO.ID_STCO ");
sql.append(" AND FCM_CLCO_SLA(CHAMADO.DH_PRTO, TIPO_CHAMADO.PZ_SLA, NULL, NULL, NULL, NULL) ");
Perceba que na última linha eu dou um AND e chamo a function FCM_CLCO_SLA que está no banco.
Eu consigo fazer isso com JPA?
Então jake, o problema é que estou usando o CriteriaQuery e meu select já está pronto. Eu só preciso colocar na clausula where a chamada da function que está no banco.Sim, e aqui eu repito tudo o que eu disse na primeira reposta. ^^
Se fosse fazer na mão faria:StringBuilder sql = new StringBuilder(); sql.append(" SELECT CHAMADO.ID_CHMO "); sql.append(" FROM TSGO_CHMO CHAMADO "); sql.append(" WHERE SITUACAO_GRUPO_ACESO.ID_STCO = TRAMITACAO.ID_STCO "); sql.append(" AND FCM_CLCO_SLA(CONTROLE_TAREFA_CHAMADO.DH_ENTA, CONTROLE_TAREFA_CHAMADO.PZ_SLA, NULL, NULL, NULL, NULL) ");Perceba que na última linha eu dou um AND e chamo a function FCM_CLCO_SLA que está no banco.
Eu consigo fazer isso com JPA?
Entendi, vc tem razão Jake.
Porém, descobri outro problema. Quando chamo a function, passo 2 parametros. Esses dois parametros pertencem ao retorno do meu select. Ou seja, preciso usar inner join.
Vc acha que consigo fazer isso com JPA?
Entendi, vc tem razão Jake.Se você consegue fazer isso com query normal, com native query você conseguirá.
Porém, descobri outro problema. Quando chamo a function, passo 2 parametros. Esses dois parametros pertencem ao retorno do meu select. Ou seja, preciso usar inner join.
Vc acha que consigo fazer isso com JPA?