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?
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?
[quote=Chuvinha]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(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?[/quote]Sim, e aqui eu repito tudo o que eu disse na primeira reposta. ^^
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?
[quote=Chuvinha]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?[/quote]Se você consegue fazer isso com query normal, com native query você conseguirá.