Tài liệu Hibernate cho biết:
- Không có liên kết nào, dù ẩn hay rõ ràng, có thể được chỉ định trong một truy vấn HQL hàng loạt. Truy vấn con có thể được sử dụng trong mệnh đề where, trong đó bản thân các truy vấn con có thể chứa các phép nối.
Vì vậy, bạn cần thay thế phép nối ngầm bằng truy vấn con tương đương:
getHibernateTemplate().bulkUpdate(
"update Address address set address.preferred = 1 " +
"where address.user in (select u from User u where u.language = ?)",
"en");