Mysql
 sql >> Database >  >> RDS >> Mysql

HQL sta generando un "cross join" incompleto su executeUpdate

La documentazione di ibernazione dice:

lt.trade.volume è un implicito inner join tra LocationTrade e Trade, quindi la query non è valida. Dovrai riscriverlo in qualcosa di simile al seguente:

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)

Oppure dovrai invece utilizzare una query SQL.