我想在春季批处理中禁用休眠级别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);
但没有用,不胜感激〜
答案 0 :(得分:0)
如果您使用RepositoryItemWriter
,则此配置选项应在Spring数据存储库级别(您的userRepository
)而不是通过Spring Batch项目编写器完成(因为该编写器将写入委托给存储库)。
但是,由于您正在使用Hibernate,因此我建议您将HibernateItemWriter
与StatelessSession
结合使用,从Javadoc来看,不会与任何二级缓存交互。