小编kar*_*yan的帖子

在Springboot + JPA存储库中使用二级缓存

我使用 Spring Boot 配置作为我的主表的二级缓存。我没有在 Spring Boot 中配置二级缓存。需要了解缓存是如何完成的以及检索是如何完成的。

这是我的 Application.java 类(SpringBootServletinitializer)。我添加了一个测试方法 allCodeValues() 只是为了验证我是否只触发一次休眠查询。但我看到查询被触发了两次,因此表明存储库调用未缓存在休眠中。请帮助我为 EhCaching 进行 SpringBoot 的准确配置...

public class Application extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception{        

    SpringApplication.run(Application.class, args);      
}

@Autowired
WorkflowListRepository wflListRepo;

@Bean(name="getAllCodeValue")
public List<WorkFlowList> allcodeValues(){

    List<WorkFlowList> wflList= wflListRepo.getAllDocuments();

    wflList= wflListRepo.getAllDocuments();

    return wflList;
}
Run Code Online (Sandbox Code Playgroud)

}

下面是JPA持久化的配置

@Bean(name = "entityManagerFactory")
@Primary
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {

     LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
     entityManagerFactoryBean.setJpaVendorAdapter(vendorAdaptor());
     entityManagerFactoryBean.setDataSource(dataSource());
     entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
     entityManagerFactoryBean.setJpaProperties(jpaHibernateProperties());

     return entityManagerFactoryBean;
 }


  private Properties jpaHibernateProperties() {

     Properties properties = new Properties();

     properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, env.getProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL)); …
Run Code Online (Sandbox Code Playgroud)

second-level-cache spring-data-jpa spring-boot

5
推荐指数
0
解决办法
5311
查看次数