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");