@CacheEvict уходит раньше коммита, и кэш врёт до перезапуска

Habr ·

@CacheEvict уходит раньше коммита, и кэш врёт до перезапуска

В Spring кэш и транзакции существуют рядом, но не знают друг о друге — из-за этого корректный на первый взгляд код может приводить к расхождениям между данными в базе и кэше. Особенно легко столкнуться с такими сценариями при использовании @CacheEvict , когда порядок операций влияет на итоговое состояние приложения. В статье разберемся, почему Spring-кэш может сохранять несуществующие значения, как возникает проблема с откатами и какие подходы помогают сохранить согласованность данных. Разобрать кейс

В Spring кэш и транзакции существуют рядом, но не знают друг о друге — из-за этого корректный на первый взгляд код может приводить к расхождениям между данными в базе и кэше. Особенно легко столкнуться с такими сценариями при использовании @CacheEvict , когда порядок операций влияет на итоговое состояние приложения. В статье разберемся, почему Spring-кэш может сохранять несуществующие значения, как возникает проблема с откатами и какие подходы помогают сохранить согласованность данных. Разобрать кейс

Источник: Habr