2017-07-28 3 views
0

で値の数と一致していない私は、Hibernate 5と春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

こんにちはPatrick、いいえ、引用符を付ける必要はありません:reasonStr – deepakl

答えて

0

Iは、テーブルirms_deleted_data(理由VARCHAR2(10)、irms_id番号(11,0))を作成するには、次の

を(簡単な休止状態の例)を試みました。 IRMS_DELETED_DATA値( 'xyz'、1)に挿入します。 ...

問題を引き起こしている何かをやっているirms_deleted_data上のトリガーがあるかどうかをチェックすることができます

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(); 
} 

、それが働いていた....また

関数を書きました