Caused by: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
今天遇到一个奇怪的异常,是这样的,之前我定义了一个Long类型的常量,并把它作为以下方法的参数getHibernateTemplate().get(clazz, id);可以正常返回指定类的记录对象。后来,为了业务需要,...
·
今天遇到一个奇怪的异常,是这样的,之前我定义了一个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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9399028/viewspace-730859/
更多推荐
已为社区贡献2条内容
所有评论(0)