Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum dieses Ruhezustands-Template bulkUpdate nicht funktioniert

Hibernate-Dokumentation sagt:

  • In einer HQL-Massenabfrage können weder implizite noch explizite Joins angegeben werden. Unterabfragen können in der Where-Klausel verwendet werden, wobei die Unterabfragen selbst Verknüpfungen enthalten können.

Sie müssen also den impliziten Join durch die entsprechende Unterabfrage ersetzen:

getHibernateTemplate().bulkUpdate(
   "update Address address set address.preferred = 1 " +
   "where address.user in (select u from User u where u.language = ?)",
   "en");