Убедитесь, что вы вызываете метод репозитория с активной транзакцией.
На самом деле, в моем последнем проекте я использую следующую идиому для обновления флага:
Объект помечен Hibernetish:
@Entity
@Table(name="myTable")
@Where(clause = "is_deleted = 0")
@Cacheable
public class MyTable {}
Фактическое обновление поставляется с тривиальным методом поиска:
@Transactional
public void deleteById(@NonNull final Long themeId) {
themeRepository.findById(themeId).orElseThrow(() -> new EntityNotFoundException(THEME_NOT_FOUND + themeId))
.setDeleted(true);
}