sql >> Base de Datos >  >> RDS >> Oracle

Por qué esta actualización masiva de plantilla de hibernación no funciona

La documentación de Hibernate dice:

  • No se pueden especificar uniones, ya sean implícitas o explícitas, en una consulta HQL masiva. Las subconsultas se pueden utilizar en la cláusula where, donde las propias subconsultas pueden contener uniones.

Por lo tanto, debe reemplazar la unión implícita con la subconsulta equivalente:

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