当前位置: 首页 > 知识库问答 >
问题:

Hibernate异常位置超出声明的序数参数的数量

戚飞雨
2023-03-14

我想执行mysql插入查询使用Hibernate,我有这个:

String q1="INSERT INTO sample (DatasetStatusID,Message,ProcessTime) VALUES('?','?','?') ";
Query query=session.createSQLQuery(q1);
query.setParameter(0, 5);
query.setParameter(1, "TESTING");
query.setParameter(2, new Date());  
int result=query.executeUpdate();
tx.commit();

我发生了以下异常:,

线程“main”组织中出现异常。冬眠QueryParameterException:位置超出已声明序数参数的数量。请记住,序数参数是基于1的!职位:1

这里怎么了?

共有2个答案

申屠新觉
2023-03-14

尝试删除查询中参数占位符(问号)周围的引号。

赖明煦
2023-03-14

如果您正在使用HIBERNATE,建议保存数据的方式是保存()HIBERNATE具有数据库操作的所有方法。但是有些原因可以使用本机sql查询。用hibernate保存,如下所示:

 Session sess = factory.openSession();
 Transaction tx;
 try {
     tx = sess.beginTransaction();
     sess.save(YourPojo);
     tx.commit();
 }
 catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
 }
 finally {
     sess.close();
 }

推荐的Hibernate教程:
Hibernate参考文档
Hibernate教程

 类似资料: