Hibernte报错:java.lang.IndexOutOfBoundsException: 问题解决

2022-12-19 426点热度 0人点赞 0条评论

Java中很多地方的index都是0开始的,不过有个特殊,就是在操作JDBC的时候,比如设置patameter的时候,是以1开始的,今天在Hibernate中使用:

String sql = "insert into t_table_name(id, name) values(?,?)";
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(sql);
query.setParameter(1, 1);
query.setParameter(2, "Terry");
query.executeUpdate();

以上却报错:

java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based

通过研究,发现虽然报错里面写的是:『Remember that ordinal parameters are 1-based』,但是我们在Hibernate里给参数设置index的时候,居然还是还要从o开始,如下:

String sql = "insert into t_table_name(id, name) values(?,?)"; 
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(sql); 
query.setParameter(0, 1);  // hibernate里还是用0开始的index!!
query.setParameter(1, "Terry"); 
query.executeUpdate();

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论