在 Spring 天使用JPA更新查询?

我正在尝试使用以下查询使用JPA存储库在spring中更新表中的列

@Modifying
@Query("UPDATE  Price p SET p.price=:price where p.timePeriod=:timePeroid and p.outletVariety.outletProduct.outlet.id=:oId and p.outletVariety.variety.id=:vId")
Integer updatePriceForVarietyandOutlet(@Param("price") Double price,@Param("timePeroid") LocalDate timePeroid,@Param("oId") Long oId , @Param("vId") Long vId);

但我得到以下例外

org.springframework.dao.InvalidDataAccessResourceUsageException:无法执行语句; SQL [不适用];嵌套异常是org.hibernate.exception.SQLGrammarException:无法执行语句

我在某处读到了JPA更新中不允许JOIN,所以我尝试使用本机查询,如下所示

update pi.price join pi.outlet_product_variety on pi.price.outlet_vareity_id=pi.outlet_product_variety.id join pi.outlet_product on pi.outlet_product_variety.outlet_product_id=pi.outlet_product.id set price =10 where  time_period='2018-01-01' and vid=698

但它仍然不起作用,也不会有例外 . 这个问题的解决方案是什么?谢谢

回答(0)