mybatis @SelectKey @Options 无法返回自己增长的id,一直返回1

使用mybatis做简单查询,直接通过接口方法的注解的形式编写mybatis的mysql语句,但是现在需要能返回自增长的id,但是如下代码一直无法返回自增长的id。Sel... 使用mybatis做简单查询,直接通过接口方法的注解的形式编写mybatis的mysql语句,但是现在需要能返回自增长的id,但是如下代码一直无法返回自增长的id。SelectKey语句确实有获取到自增长的id,因为我的id比较长,我用resultType = short.class 会报错,说short 不够大,然后报错信息打印出来的id确实是我要返回的id,但是他没有通过函数的返回值给我,只是返回了一个1,跪求大神指点
@Insert("insert into sys_city( name , parent_id , short_name , level_type , city_code ,
post_code , merger_name , lng , lat , spell , state , create_time , update_time ,
is_delete ) values (#{obj.name}, #{obj.parentId}, #{obj.shortName}, #
{obj.levelType}, #{obj.cityCode}, #{obj.postCode}, #{obj.mergerName}, #
{obj.lng}, #{obj.lat}, #{obj.spell}, #{obj.state}, #{obj.createTime}, #
{obj.updateTime}, #{obj.isDelete} ) ") @SelectKey(before=false,keyProperty="obj.id",statementType=StatementType.STATE
MENT,statement="SELECT LAST_INSERT_ID() AS id", resultType =
short.class)
@Options(useGeneratedKeys = true,keyColumn="obj.id")
public int saveForId(@Param("obj")SysCity obj);
展开
 我来答
yangcheng33
2017-04-20 · TA获得超过996个赞
知道小有建树答主
回答量:490
采纳率:60%
帮助的人:263万
展开全部
把SysCity的id属性改为long就好了,为啥要用short,mysql里头的无符号int对应得实java里头的long。saveForId操作完,自增的id就写入到obj对象的id里头了,直接去这里取就行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式