Aquí podría ser tu PUBLICIDAD


ref_cursor en @NamedStoredProcedureQuery con EclipseLink

votos
0

Puedo asignar ref_cursor en un selecto devuelto por un proc con NamedStoredProcedureQuery por medio de anotaciones JPA, datos de primavera y EclipseLink?

Ejemplo:

Mis procedimientos de Oracle devuelve un cursor en un cursor:

CREATE OR REPLACE PROCEDURE get_emp (p_name IN VARCHAR2,p_recordset OUT SYS_REFCURSOR) AS 
BEGIN 
     OPEN p_recordset FOR
          select
               employee_id,
               name,
               office,
               proc_get_company(company_id) as company
           from
               table_employee
           where
               name like '%' || :p_name || '%'
END;

procedimiento de la empresa hallazgo

CREATE OR REPLACE PROCEDURE proc_get_company (company_id IN NUMBER,p_recordset OUT SYS_REFCURSOR) AS 
BEGIN
   OPEN p_recordset FOR
      select
           company_id,
           company_name
      from
           table_company
      where
           company_id = :company_id
END;

Mi Classe Empleado

@NamedStoredProcedureQuery(name = getEmployee,procedureName = get_emp,parameters = { 
     @StoredProcedureParameter(mode = ParameterMode.IN,type = String.class, name = p_name), 
     @StoredProcedureParameter(mode = ParameterMode.REF_CURSOR,type = void.class, name = p_recordset)
})
@Entity
public class Employee {

   @Column(name = employee_id) 
   private long employeeId;

   @Column(name = name)
   private String name;

   @Column(name = office)
   private String office;

   private Company company; 

   ...
}

Mi clase de la empresa

@Entity
public class Company {

   @Column(name = company_id) 
   private long  companyId;

   @Column(name = company_name)
   private String name;   
   ...
}

primavera Repositorio

@Repository
public interface EmployeeDAO extends CrudRepository<Employee, Long>{

   @Procedure(name = getEmployee,outputParameterName=p_recordset)
   public List<Employee> findEmployeeByName(@Param(p_name) String name)

}

me puedes ayudar ?

Publicado el 02/09/2018 a las 05:18
fuente por usuario Daniel Maciel Araujo
En otros idiomas...        العربية       


Aquí podría ser tu PUBLICIDAD