Mybatis:Oracle 嵌套集合

Mybatis : Oracle Nested Collection

如何使用 mybatis 映射器(没有类型处理程序) 从存储过程中获取 DB 嵌套集合。 例如:存储过程 returns 以下类型的 DB table 对象:

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

,你是对的。对于自定义数据库类型,自定义类型处理程序是必须的。这是告诉 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中不受支持。