Ich verwende Hibernate und möchte eine Massenaktualisierung durchführen, wobei der Status aller Objekte in einer Liste von IDs geändert wird. Also habe ich versucht:Hibernate Query Language (HQL) Aktualisierungsliste
String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (:idList)"
, die eine Ausnahme verursacht:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;
ich auch versucht:
String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (SELECT id FROM Foo WHERE id in (:idList))"
, dass die gleiche Ausnahme verursacht hat.
Ich bin Einfügen der Parameter wie folgt aus:
StatelessSession ss = sessionFactory.openStatelessSession();
Query query = ss.createQuery(update);
query.setParameter("status", status);
query.setParameterList("idList", ids);
query.executeUpdate();
Irgendwelche Ideen, wie diese Arbeit zu machen? Vielen Dank im Voraus
Entferne die Braves um den Parameter herum. Sie sollten von Hibernate hinzugefügt werden – Jens
Ich entfernte, aber immer noch den gleichen Fehler :( –