休眠:值java.sql.SQLException:列数并不在致1排

问题描述:

我使用Hibernate的5和Spring 4.执行下面的SQL查询和获取错误休眠:值java.sql.SQLException:列数并不在致1排

匹配值数列数在第1行

SQLQuery query = getSessionFactory().getCurrentSession().createSQLQuery(" update irms_deleted_data SET reason=:reasonStr WHERE irms_id=:id "); 
     query.setString("reasonStr", "ABCD1234"); 
     query.setInteger("id", irmsData.getId()); 
     query.executeUpdate(); 

不匹配值 计任何想法,为什么我收到此错误?

+0

发布的代码看起来很好 – StanislavL

+0

不'createSqlQuery'创建一个本地查询,所以你必须为你的字符串字段使用引号?像这样:'... set reason =':reasonStr'...' – Patrick

+0

嗨,帕特里克,不,我们不必把引号周围:reasonStr – deepakl

我尝试以下的(简单休眠例子)

创建表irms_deleted_data(原因VARCHAR2(10),irms_id数(11,0)); 插入到IRMS_DELETED_DATA值('xyz',1);

写了一个函数:

private void updateirmsDeletedData() { 
Transaction tx = null; 
Session session = factory.openSession(); 
try { 
tx = session.beginTransaction(); 
SQLQuery query = session.createSQLQuery("update irms_deleted_data SET reason=:reasonStr WHERE irms_id=:id"); 
query.setString("reasonStr", "ABCD1234"); 
query.setInteger("id", 1); 
query.executeUpdate(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
tx.commit(); 
session.close(); 
} 

和工作....

你也可以检查是否有上irms_deleted_data触发该做的事情导致了问题...