的Bonjour,
我在mybatis 3面临问题已经过了2天
我有一个存储过程返回2个结果集(object1的结果集,object2的结果集)。
我为每个结果集
创建了一个resultMapobject1的结果映射(创建类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而secont 20元素全为空。
我知道我用映射做错了什么,但此时我看不出问题所在。
先谢谢。
答案 0 :(得分:0)
您要求我们推断相当多,但我认为很明显,多个结果集处理的基本机制正常工作(您获得正确数量的对象)。什么不起作用是将行映射到对象。只有当Object1和Object2没有任何与从SP返回的列匹配的属性时才会发生这种情况。
例如,如果第一个结果集包含&#34; ID,DESCRIPTION&#34;,则Object1必须具有&#34; id&#34;和&#34;描述&#34;属性(不区分大小写)。
如果您不知道将从SP返回的内容,请将每个type
的{{1}}更改为<resultMap>
。然后MyBatis将构建地图列表,您可以在地图中查看从SP返回的值及其列名。