मैपर को इस प्रकार बदलें
<resultMap type="detail" id="myResultMap" >
<result property="objectNamee" column="P_OBJECT_NAME" />
<result property="objectStatus" column="p_object_status" />
</resultMap>
<select id="getLearnerMap" parameterType="spInOut" statementType="CALLABLE">
{call p1.data_collection_append(#{objList, jdbcType=CURSOR, mode=OUT, resultMap=myResultMap, javaType=java.sql.ResultSet})}
</select>
अपनी डोमेन निर्देशिका में SpInOut में एक प्रकार बनाएं
public class SpInOut {
private Object objList;
//getter setting follows
}
यहाँ एक पूर्ण सरल उदाहरण है
DB पक्ष
कस्टम प्रकार बनाएं
PACKAGE KP_EMP_PCK AS
type empType is ref cursor;
END KP_EMP_PCK;
एक संग्रहित प्रक्रिया बनाएं
create or replace PROCEDURE KPLISTEMP
( empList OUT kp_emp_pck.empType
) AS
BEGIN
open empList for select empid, fname, lname,address from kpemployee order by fname;
END KPLISTEMP;
जावा साइड
डोमेन क्लास बनाएं
public class User {
private String fName;
private String company;
private int age;
private int salary;
//getter Setter
}
SpInOut के लिए डोमेन बनाएं
public class SpInOut {
private Object empList;
//getter setting follows
}
मैपर इंटरफ़ेस
public interface EmployeeMapper {
void getEmployees(SpInOut param);
}
मैपर xml फ़ाइल
<mapper namespace="com.kp.swasthik.db.oracle.persistence.EmployeeMapper">
<resultMap type="employee" id="empResultMap" >
<id property="empId" column="EMPID" />
<result property="fName" column="FNAME" />
<result property="lName" column="LNAME" />
<result property="address" column="ADDRESS" />
</resultMap>
<select id="getEmployees" statementType="CALLABLE" parameterType="spInOut" >
{call kplistemp(#{empList, jdbcType=CURSOR, mode=OUT, resultMap=empResultMap, javaType=java.sql.ResultSet})}
</select>
</mapper>
और अंत में सर्विस क्लास
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
EmployeeMapper mapper;
@Override
public List<Employee> getEmps() {
try{
SpInOut data= new SpInOut();
mapper.getEmployees(data);
return (List<Employee>) data.getEmpList();
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}