休眠:值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();
不匹配值 计任何想法,为什么我收到此错误?
答
我尝试以下的(简单休眠例子)
创建表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触发该做的事情导致了问题...
发布的代码看起来很好 – StanislavL
不'createSqlQuery'创建一个本地查询,所以你必须为你的字符串字段使用引号?像这样:'... set reason =':reasonStr'...' – Patrick
嗨,帕特里克,不,我们不必把引号周围:reasonStr – deepakl