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

HQL génère une "jointure croisée" incomplète lors de l'exécution de la mise à jour

La documentation Hibernate dit :

lt.trade.volume est une jointure interne implicite entre LocationTrade et Trade, la requête n'est donc pas valide. Vous devrez le réécrire en quelque chose comme ceci :

update LocationTrade lt set lt.hasVeryHighVolume=true where lt.locationIndices=? 
and lt.id in (
    select lt2.id from LocationTrade lt2 where lt2.trade.volume > 20000)

Ou vous devrez utiliser une requête SQL à la place.