Документацията за хибернация казва:
- В групова HQL заявка не могат да се посочат никакви обединения, неявни или изрични. Подзаявките могат да се използват в клаузата where, където самите подзаявки могат да съдържат присъединявания.
Така че трябва да замените неявното присъединяване с еквивалентната подзаявка:
getHibernateTemplate().bulkUpdate(
"update Address address set address.preferred = 1 " +
"where address.user in (select u from User u where u.language = ?)",
"en");