2016-12-07 11 views
0

私はHibernateを使用しています.IIDリスト内のすべてのオブジェクトのステータスを変更して一括更新したいと思います。 は、だから私は試した:私も試したHibernate Query Language(HQL)更新リスト

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; 

String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (SELECT id FROM Foo WHERE id in (:idList))" 

同じ例外の原因となった例外の原因となった

String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (:idList)" 

私はこのようなパラメータを挿入しています:

StatelessSession ss = sessionFactory.openStatelessSession(); 
Query query = ss.createQuery(update); 
query.setParameter("status", status); 
query.setParameterList("idList", ids); 
query.executeUpdate(); 

任意のアイデアをどのようにこの作品を作るには? ありがとうございます

+0

パラメータの周りの勇者を削除してください。それらは、休止状態で追加する必要があります。 – Jens

+0

私は削除しましたが、同じエラーが発生しました:( –

答えて

1

StatusはMySQLの予約語です。列の名前を他の名前に変更してください

+0

他の方法はありますか?簡単に変更できるとは思わない –

+1

バックテックでフィールドを囲むことはオプションですが、どこにでもそれらを追加して名前を変更するのが望ましいです... – Reimeus