В запросе на обновление Hibernate отсутствует связь - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь обновить объект с помощью следующего запроса:

@Transactional
@Modifying
@Query("UPDATE WeeklyCare wc SET wc.personalCare = wc.personalCare + :newPersonalCare WHERE wc.citizen.cpr = :cpr AND wc.week = :week AND wc.year = :year")
int updateByIdentifier(@Param("newPersonalCare") Double newPersonalCare, @Param("cpr") String cpr, @Param("week") Integer week, @Param("year") Integer year);

Это SQL-запрос, который генерируется:

update weekly_care cross join  set personal_care=personal_care+? where cpr=? and week=? and year=?

Что приводит к MySQLSyntaxErrorException. Как видите, после cross join чего-то не хватает. Кажется, он не может найти wc.citizen из запроса. Почему это происходит? Когда я выполняю этот запрос:

@Query("FROM WeeklyCare wc WHERE wc.citizen.cpr = :cpr AND wc.week = :week AND wc.year = :year")
WeeklyCare findByIdentifier2(@Param("cpr")String cpr, @Param("week")Integer week, @Param("year") Integer year);

Возвращает WeeklyCare с ассоциированным Citizen. Так что это не потому, что Citizen не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...