ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Caused by: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1

Caused by: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1

原创 Linux操作系统 作者:xz43 时间:2012-05-24 15:42:24 0 删除 编辑

今天遇到一个奇怪的异常,是这样的,之前我定义了一个Long类型的常量,并把它作为以下方法的参数

getHibernateTemplate().get(clazz, id);

可以正常返回指定类的记录对象。后来,为了业务需要,把这个Long类型的常量改为了Integer类型,结果运行的时候上面的方法报错,错误如下:

Caused by: java.sql.SQLException: 索引中丢失  IN 或 OUT 参数:: 1

按异常信息的意思,就是传入SQL的参数个数和SQL需要的参数个数不一致了。我就奇怪了,一共就1个参数,怎么会报这个错误,如是把这个常量改为int类型,还是报同样的错误,最后恢复为当初的Long类型,应用才恢复正常,不再报错。

这里需要说明,要查找的对象里面id属性也为Long类型,可能因为这点,所以Hibernate框架就要求传入的参数也必须是这个类型了,这点可以理解。但因为这块的不一致而报的错误信息,确很不能让人理解了,甚至误导别人的解决思路。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-730859/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-16

  • 博文量
    407
  • 访问量
    1733145