Mybatis:Oracle嵌套集合

时间:2016-08-25 17:02:30

标签: mybatis oracle-type

如何使用 mybatis mappers(无类型处理程序)从存储过程中获取数据库嵌套集合。 例如:存储过程返回以下类型的DB表对象:

TYPE class_list IS TABLE OF class ;

,其中

TYPE class AS OBJECT (students student_list, class_teacher teacher);
TYPE student_list IS TABLE OF student;
TYPE student AS OBJECT (name VARCHAR2, age NUMBER, marks NUMBER);
TYPE teacher AS OBJECT (name VARCHAR2, qualification VARCHAR2, phone_number NUMBER);

1 个答案:

答案 0 :(得分:0)

@blackwizard,你是对的。对于自定义数据库类型,必须使用自定义类型处理程序。以下是告诉mybatis它正在处理自定义对象的语法(jdbcTypeName):

{call YOUR_PACKAGE.YOUR_PROCEDURE(
    #{your_input_parameter, jdbcType=VARCHAR mode=IN javaType=java.lang.String mode=IN },
    #{your_output_parameter, jdbcType=ARRAY mode=OUT jdbcTypeName=class_list typeHandler=custom_typeHandler})}

注意:已弃用的parameterMap不支持此功能。