Проект.
Пример:
Мои процедуры оракула возвращают курсор в другой курсор:
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)) на нем не возвращаетсяаннотаций.: (
ты можешь мне помочь?