La documentación de Hibernate dice:
- No se pueden especificar uniones, ya sean implícitas o explícitas, en una consulta HQL masiva. Las subconsultas se pueden utilizar en la cláusula where, donde las propias subconsultas pueden contener uniones.
Por lo tanto, debe reemplazar la unión implícita con la subconsulta equivalente:
getHibernateTemplate().bulkUpdate(
"update Address address set address.preferred = 1 " +
"where address.user in (select u from User u where u.language = ?)",
"en");