在春季使用JPA更新查询?

时间:2018-08-03 10:41:43

标签: java spring jpa spring-data-jpa

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

@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 [n / a];嵌套的异常是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 个答案:

没有答案