sql >> Database >  >> RDS >> Mysql

HQL genereert onvolledige 'cross join' op executeUpdate

De Hibernate-documentatie zegt:

lt.trade.volume is een impliciete inner join tussen LocationTrade en Trade, dus de zoekopdracht is ongeldig. Je moet het herschrijven naar iets als het volgende:

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)

Of je moet in plaats daarvan een SQL-query gebruiken.




  1. hoe het eerste en laatste record uit de mysql-tabel te vinden

  2. Verbinding maken met Postgres via Node.js

  3. Alleen tijd bijwerken in een mysql DateTime-veld

  4. MySQL-query met telling en groeperen op