小编Bri*_*edt的帖子

存储过程输出参数由iBATIS设置回POJO

我正在使用iBATIS在MSSQL Server上调用存储过程,输入参数是放在地图上的POJO上的属性:

Map<String, Object> saveMap = new HashMap<String, Object>();
saveMap.put("obj", myArticle);
update("save", saveMap);
Run Code Online (Sandbox Code Playgroud)

所有参数都正确设置为过程的输入,因此没有任何错误.但其中一个参数是输出参数,我期望它被设置回POJO,而是"obj.new"=false由iBATIS将一个额外的映射放到地图上.这是映射的简化版本,显示了基本思想:

    <procedure id="save">
    {<include refid="Core.returned_value" />
    CALL SPRC_ARTICLE_NAME_SAVE (
        <include refid = "Core.common_fields" />
        @pArticle_id = #obj.art_id#
    ,   @pArtname = #obj.artname#
    ,   @pNewArticleName_flg = #obj.new,mode=INOUT#
    )}
</procedure>
Run Code Online (Sandbox Code Playgroud)

调用该过程后,我在Map中传递给iBATIS的两个映射:

  • "obj"=POJO
  • "obj.new"=False

现在我看到iBatis文档"当执行存储过程时 - iBATIS将为OUTPUT参数创建对象",所以它是有道理的.但我的问题是,有没有办法指示iBATIS在调用过程后将布尔值放回到POJO?我宁愿不做额外的工作,从地图中获取价值并将其设置为我自己的POJO.

//Uhlén

java orm ibatis

20
推荐指数
1
解决办法
4070
查看次数

标签 统计

ibatis ×1

java ×1

orm ×1