存储过程返回2结果集mybatis 3

时间:2018-04-03 09:51:37

标签: stored-procedures mybatis resultset

的Bonjour,

我在mybatis 3面临问题已经过了2天

我有一个存储过程返回2个结果集(object1的结果集,object2的结果集)。

我为每个结果集

创建了一个resultMap

object1的结果映射(创建类pojo Object1) object2的结果映射(创建类pojo Object2)

给出像这样的东西:

    <resultMap id="object1" type="Object1" />

    <resultMap id="object2" type="Object2" />

对于存储过程的调用我有这个:

    <select id="pscall" parameterType="Integer" 
        resultMap="object1,object2" statementType="CALLABLE">       
        { CALL PS(
            #{id, mode=IN},
        ) }
    </select>

现在执行所有这些时,我得到了两个带有object1和object2所需数量的列表,但是这两个列表用空对象填充,就像第一个列表我得到3个元素并且它们都是null而sec​​ont 20元素全为空。

我知道我用映射做错了什么,但此时我看不出问题所在。

先谢谢。

1 个答案:

答案 0 :(得分:0)

您要求我们推断相当多,但我认为很明显,多个结果集处理的基本机制正常工作(您获得正确数量的对象)。什么不起作用是将行映射到对象。只有当Object1和Object2没有任何与从SP返回的列匹配的属性时才会发生这种情况。

例如,如果第一个结果集包含&#34; ID,DESCRIPTION&#34;,则Object1必须具有&#34; id&#34;和&#34;描述&#34;属性(不区分大小写)。

如果您不知道将从SP返回的内容,请将每个type的{​​{1}}更改为<resultMap>。然后MyBatis将构建地图列表,您可以在地图中查看从SP返回的值及其列名。