Я пытаюсь использовать аннотацию @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?