Обновить запрос с использованием 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: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement

Я где-то читал, что JOIN не разрешен в обновлении JPA, поэтому я попытался использовать собственный запрос, как показано ниже

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

Но он все еще не работает, и никаких исключений не ожидается. Какое решение этой проблемы. Спасибо

В журналах у вас должно быть больше информации, и она должна начинаться с «Причина»:

marok 03.08.2018 12:48

@marok Спасибо за предложение. Также, пожалуйста, скажите, правильный ли собственный запрос?

meGaMind 03.08.2018 12:58

Я предпочитаю не использовать собственные запросы, если это не проще, чем ни один собственный запрос

marok 03.08.2018 13:02

@marok Ладно, а в случае апдейта в каком join нужен нативный?

meGaMind 03.08.2018 13:04

Как спросил @marok в первом комментарии. Покажите журналы и инструкцию SQL, созданную Hibernate.

Simon Martinelli 03.08.2018 13:10

Это необязательно. Сначала посмотрите журналы, чтобы узнать причину.

marok 03.08.2018 13:11

Собственно то, что он опубликовал, взято из логов. Та же проблема здесь с использованием DB2.

Spektakulatius 17.12.2019 15:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
7
157
0

Другие вопросы по теме