Mybatis中多个selectKey的使用

此生 发布于 2015/10/09 10:23
阅读 5K+
收藏 0
<insert id="addDBtask" parameterType="task" keyProperty="id"  useGeneratedKeys="true">
       <selectKey keyProperty="id"  order="AFTER" resultType="int">
            SELECT LAST_INSERT_ID() AS ID

       </selectKey>

     <selectKey keyColumn="taskno" order="BEFORE" resultType="String">
       select max(taskno+1) from task
       </selectKey>

      insert into task(taskid,taskno,taskmode,topic,contents,endtime,price,mobile,memberid,addtime,status)
             values(#{taskid},#{taskno},#{taskmode},#{title},#{contents},#{endtime},#{price},#{mobile},#{memberid},#{addtime},#{status})

    </insert>

为什么会报错呢?望大神指教(Id为主键,task是任务编号,但数据库没设递增,只能自己处理。)


 org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 73; 必须为元素类型 "selectKey" 声明属性 "keyColumn"。

加载中
0
夕阳坠月
夕阳坠月

楼主可以给出所使用mybatis的版本,

在版本3.2.7中 

同一个insert只能有一个SelectKeyGenerator,

selectKey 标签中要有keyProperty属性 ,

insert中含有 selectKey 后useGeneratedKeys="true",没什么用了


我的回答可能有问题,

楼主可以自己去阅读mybatis源码,找到答案


夕阳坠月
夕阳坠月
回复 @此生 : 是的
此生
我用的是MyBatis 3.2.2的版本,就是说insert语句中不能有多个selectkey标签,必须额外处理?
返回顶部
顶部