如何在Spring Batch中禁用二级缓存?

时间:2018-12-05 09:47:09

标签: hibernate jpa spring-batch

我想在春季批处理中禁用休眠级别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 :(得分:0)

如果您使用RepositoryItemWriter,则此配置选项应在Spring数据存储库级别(您的userRepository)而不是通过Spring Batch项目编写器完成(因为该编写器将写入委托给存储库)。

但是,由于您正在使用Hibernate,因此我建议您将HibernateItemWriterStatelessSession结合使用,从Javadoc来看,Subtitle on top不会与任何二级缓存交互。