我在mybatis 3中面临问题。我有一个存储过程,该过程返回两个结果集(object 1的结果集,object2的结果集(。
我为每个结果集创建了一个结果删除
object1的结果映射(创建一个pojo object1(
object2的结果映射(创建一个Pojo Object2(
给出这样的东西:
<resultMap id="object1" type="Object1" />
<resultMap id="object2" type="Object2" />
并且为了呼叫存储的proc,我有一个:
<select id="pscall" parameterType="Integer"
resultMap="object1,object2" statementType="CALLABLE">
{ CALL PS(
#{id, mode=IN},
) }
</select>
现在执行所有这些时,我有效地获得了两个列表,其中有两个列表和object2所需的数字,但是这两个列表中充满了空对象,就像我得到的第一个列表一样,我得到了3个元素,它们都是null和第二个元素元素所有null。
我知道我在映射时犯了一些问题,但是在这一点上,我看不到问题在哪里。
您要我们推论很多,但是我认为很明显,多个结果设置处理的基本机制正常工作(您得到了正确数量的对象(。无效的是将行映射到对象。只有当object1和object2没有任何匹配列的列的属性时,才能发生这种情况。
例如,如果第一个结果集包含" ID,描述",则Object1必须具有" ID"one_answers" Description"属性(这是情况不敏感(。
如果您不知道SP会返回什么,则将每个<resultMap>
的type
更改为map
。然后mybatis将构建地图列表,您可以在地图中查看以查看SP及其列名称的值。