A documentação do Hibernate diz:
- Nenhuma junção, implícita ou explícita, pode ser especificada em uma consulta HQL em massa. As subconsultas podem ser usadas na cláusula where, onde as próprias subconsultas podem conter junções.
Então, você precisa substituir a junção implícita pela subconsulta equivalente:
getHibernateTemplate().bulkUpdate(
"update Address address set address.preferred = 1 " +
"where address.user in (select u from User u where u.language = ?)",
"en");