Boa Noite Pessoal,
Estou tentando executar uma procedure atraves de jpa + Hibernate + Firebird.
Porem está dando o seguinte erro.
java.lang.IllegalArgumentException: Named query not found: SP_COPIA_PERMISSAO
Estou fazendo da Seguinte Maneira.
public boolean executaProcedure(String pProcedure, List<String> pParametros, String pEmpresa){
EntityManager entityManager = getEntityManager(pEmpresa);
try{
entityManager.getTransaction().begin();
entityManager.createNamedQuery(pProcedure).setParameter("VCODUSUARIOORIGEM",pParametros.get(0))
.setParameter("VCODUSUARIODESTINO",pParametros.get(1));
entityManager.getTransaction().commit();
return true;
}catch(Exception e){
System.out.println("Erro ao executar a procedure "+ pProcedure +" Motivo : " + e);
entityManager.getTransaction().rollback();
return false;
}
}
Meu persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="Consagro" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.br.model.Usuario</class>
<class>com.br.model.Path_Usu</class>
<class>com.br.model.Path</class>
<class>com.br.model.Log_Acesso</class>
<class>com.br.model.Folders</class>
<properties>
<property name="hibernate.connection.username" value="sysdba"/>
<property name="hibernate.connection.driver_class" value="org.firebirdsql.jdbc.FBDriver"/>
<property name="hibernate.connection.password" value="masterkey"/>
<property name="hibernate.connection.url" value="jdbc:firebirdsql:noteisael/3050:D:/IFsoluctions/Dados/consagro/Dados.FDB"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.FirebirdDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
<persistence-unit name="Fmc" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.br.model.Usuario</class>
<class>com.br.model.Path_Usu</class>
<class>com.br.model.Path</class>
<class>com.br.model.Log_Acesso</class>
<class>com.br.model.Folders</class>
<properties>
<property name="hibernate.connection.username" value="sysdba"/>
<property name="hibernate.connection.driver_class" value="org.firebirdsql.jdbc.FBDriver"/>
<property name="hibernate.connection.password" value="masterkey"/>
<property name="hibernate.connection.url" value="jdbc:firebirdsql:noteisael/3050:D:/IFsoluctions/Dados/consagro/Dados.FDB"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.FirebirdDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
A Classe de Usuario
package com.br.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.OrderBy;
@Entity
@Table(name="USUARIO")
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int COD_USUARIO;
@Column
String NOM_USUARIO;
@Column
String NOM_LOGIN;
@Column
String COD_SENHA;
@Column
String SIT_ADMIN;
@OrderBy("NOM_USUARIO ASC")
public int getCOD_USUARIO() {
return COD_USUARIO;
}
public void setCOD_USUARIO(int cOD_USUARIO) {
COD_USUARIO = cOD_USUARIO;
}
public String getNOM_USUARIO() {
return NOM_USUARIO;
}
public void setNOM_USUARIO(String nOM_USUARIO) {
NOM_USUARIO = nOM_USUARIO;
}
public String getNOM_LOGIN() {
return NOM_LOGIN;
}
public void setNOM_LOGIN(String nOM_LOGIN) {
NOM_LOGIN = nOM_LOGIN;
}
public String getCOD_SENHA() {
return COD_SENHA;
}
public void setCOD_SENHA(String cOD_SENHA) {
COD_SENHA = cOD_SENHA;
}
public String getSIT_ADMIN() {
return SIT_ADMIN;
}
public void setSIT_ADMIN(String sIT_ADMIN) {
SIT_ADMIN = sIT_ADMIN;
}
}
Eu procurei alguns exemplos na net, porem fazem referencia a uma notação de procedure, porém quando coloquei ela a mesma não foi identificada.
Se alguem puder ajudar, agradeço.
Mais uma coisa. Gostaria de saber se consigo ordernar o resultado da consulta ?
grato.