I have two entities, CatalogItem and StockItem, and I want to update two fields in the first one with values from the second one.
Right now i am doing it this way:
UPDATE CatalogItem ci SET
ci.availableQuantity = (SELECT availableQuantity FROM StockItem si WHERE /* some conditions */),
ci.physicalQuantity = (SELECT physicalQuantity FROM StockItem si WHERE /* the same conditions */)
WHERE ci.supplier.id = :supplierId AND ci.lastFeedUpdate < :updateTimestamp
Is there a way to do the StockItem subquery just once, retrieving both fields and using them in an update?
I can do it in SQL, with a native query, but I was wondering if there was a HQL way to achieve the same behavior.