ref_cursor à @NamedStoredProcedureQuery avec EclipseLink

voix
0

Puis-je la carte ref_cursor dans une sélection renvoyée par un proc avec « NamedStoredProcedureQuery » avec annotations JPA, les données de printemps et EclipseLink?

Exemple:

Mes procédures oracle retourne un curseur dans un curseur:

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;

procédure société de découverte

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;

Mon employé classe

@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; 

   ...
}

classe Mon entreprise

@Entity
public class Company {

   @Column(name = company_id) 
   private long  companyId;

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

Dépôt du printemps

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

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

}

Pouvez-vous m'aider ?

Créé 02/09/2018 à 05:18
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more