sql >> Databáze >  >> RDS >> Mysql

HQL generuje neúplné „křížové spojení“ při spuštění aktualizace

Dokumentace Hibernate říká:

lt.trade.volume je implicitní vnitřní spojení mezi LocationTrade a Trade, takže dotaz je neplatný. Budete jej muset přepsat na něco podobného:

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)

Nebo budete muset místo toho použít dotaz SQL.




  1. Proveďte regulární výraz (nahraďte) v dotazu SQL

  2. Dva cizí klíče místo primárního

  3. Volání uložené funkce (která vrací pole uživatelem definovaného typu) v oracle přes odkaz na databázi

  4. Použití proměnné v dotazu OPENROWSET