Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pourquoi ce modèle d'hibernation bulkUpdate ne fonctionne pas

La documentation Hibernate indique :

  • Aucune jointure, implicite ou explicite, ne peut être spécifiée dans une requête HQL groupée. Les sous-requêtes peuvent être utilisées dans la clause where, où les sous-requêtes elles-mêmes peuvent contenir des jointures.

Vous devez donc remplacer la jointure implicite par la sous-requête équivalente :

getHibernateTemplate().bulkUpdate(
   "update Address address set address.preferred = 1 " +
   "where address.user in (select u from User u where u.language = ?)",
   "en");