ref_cursor в @NamedStoredProcedureQuery с eclipseLink - PullRequest
0 голосов
/ 20 сентября 2018

Проект.

Пример:

Мои процедуры оракула возвращают курсор в другой курсор:

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;

процедура поиска компании

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;

Класс моего сотрудника

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

   ...
}

Класс моей компании

@Entity
public class Company {

   @Column(name = "company_id") 
   private long  companyId;

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

Хранилище пружин

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

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

}

Вопрос:

Как я могу сопоставить, используя аннотацию курсора ( proc_get_company (company_id) в качестве компании ), возвращенного в другом "выбранном курсоре" (p_recordset)с "NamedStoredProcedureQuery", данными Spring и eclipseLink?

Примечание: Другие поля «select» работают, но курсор (proc_get_company (company_id)) на нем не возвращаетсяаннотаций.: (

ты можешь мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...