как отключить кэш 2 уровня в весеннем пакете? - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу отключить кэш 2-го уровня гибернации в весеннем пакете.Поскольку я выполняю пакетное обновление сущностей с помощью RepositoryItemWriter, я думаю, что кеш в этом случае бесполезен, верно?И как его отключить?

Код для записи в репозиторий приведен ниже:

    @Bean
    public RepositoryItemWriter<User> writer() {
        return new RepositoryItemWriterBuilder<User>().methodName("saveAndFlush").repository(userRepository).build();
    }

Я пробовал это:

Session session = entityManager.unwrap(Session.class)
session.setCacheMode(CacheMode.IGNORE);

, но не работал, любая помощь приветствуется~

1 Ответ

0 голосов
/ 05 декабря 2018

Если вы используете RepositoryItemWriter, то этот параметр конфигурации должен быть выполнен на уровне хранилища данных Spring (ваш userRepository), а не через средство записи элементов Spring Batch (так как этот писатель делегирует запись в хранилище).

Однако, поскольку вы используете Hibernate, я могу предложить использовать HibernateItemWriter с StatelessSession, который из своего Javadoc не взаимодействует ни с каким кэшем второго уровня.

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