Исключение Spring Lazy Instantiation с @Modifying - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь использовать аннотацию @Modifying для вызова хранимой процедуры, которая обновляет поле.

Вызов выглядит следующим образом:

@Modifying(flushAutomatically = true, clearAutomatically = true)
@Query(value = "CALL IncrementLikeCount(:id, :amount)", nativeQuery = true)
void incrementLikeCount(Long id, int amount);

clearAutomatically очищает контекст поэтому транзакционная служба, которая вызывает этот метод, теперь теряет контекст, и если я попытаюсь получить ленивое поле из модели, теперь у нас будет исключение Lazy Instantiation Exception.

Одно из решений этого - сделать еще один вызов database, чтобы получить обновленную Entity. Однако я считаю, что это требование неочевидно и может привести к надзору в будущем, особенно в проекте с несколькими разработчиками, которые могут не знать об этом.

Есть ли решение, которое позволяет мне изменить это поле, но также позволяет мне работать с сущностью без явного вызова refetch?

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