Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que este modelo de hibernação bulkUpdate não funciona


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");