求助---mybatis注解问题

u010219046 2014-01-10 11:29:07
Exception in thread "main" org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property 'USER_ID' of 'com.lc.model.Users@1638fff7' with value 'null' Cause: java.lang.IllegalArgumentException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)
at $Proxy9.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:59)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
at $Proxy13.insert(Unknown Source)
at com.lc.dao.UsersDao.insert(UsersDao.java:52)
at com.lc.main.Main.main(Main.java:27)

--------------这个是我的添加方法,我想要返回添加后的自增值.添加方法没问题.-------------------
--------------Users这个是我的entity别名. @Alias("Users")--------------------------
@Insert("INSERT INTO Web.dbo.EB_BASE_USER VALUES(#{Users.NICK_NAME},#{Users.LOGIN_ID},#{Users.USER_PWD},#{Users.LOGIN_EMAIL},#{Users.LOGIN_PHONE},#{Users.STATUS})")
@SelectKey(before = false, keyProperty = "Users.USER_ID", resultType = int.class, statement = { "SELECT IDENT_CURRENT('EB_BASE_USER') as USER_ID" })
public abstract int insert(@Param("Users") Users user);

------------------------求解--------------------------------------



...全文
704 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
firein 2014-01-10
  • 打赏
  • 举报
回复
数据库里USER_ID的类型是不是数值型? 插入null这个文字列的话,会出这个错的
mad_programmer 2014-01-10
  • 打赏
  • 举报
回复
Insert语句要加上ID字段
Inhibitory 2014-01-10
  • 打赏
  • 举报
回复
说句不太中听的话,MyBatis用Annotation有点歪了。
u010219046 2014-01-10
  • 打赏
  • 举报
回复
引用 2 楼 forgetsam 的回复:
你先以mybatis的datasource中的用户和密码链接数据库,执行SELECT IDENT_CURRENT('EB_BASE_USER') as USER_ID,看结果。
按你说的执行这个... 返回ID的列:265
u010219046 2014-01-10
  • 打赏
  • 举报
回复
现在是返回数据了.不过时返回了操作行数.返回了一个1,为什么不是ID呢
forgetsam 2014-01-10
  • 打赏
  • 举报
回复
你先以mybatis的datasource中的用户和密码链接数据库,执行SELECT IDENT_CURRENT('EB_BASE_USER') as USER_ID,看结果。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧