2017-09-19 181 views
0

我需要在應用程序啓動時查詢數據庫表並在ehcache中存儲表條目(entites)。當有數據請求的時候,數據(實體)需要從cahce中取數據而不是去數據庫。Spring Boot Hibernate Ehcache實體緩存實現

我已經使用方法級高速緩存實現了它,但是當它沒有用,因爲每當方法參數發生變化時都會觸發DB。如何避免它存在實體級高速緩存的示例。

我使用的是Spring引導1.2.4 ehcache和Spring Boot Data JPA。

+0

你指的是2-3個不同的東西,難以遵循。請在代碼摘錄中提出您的問題 – dimitrisli

回答

0

您可以預先加載數據。手動。或使用加載器 - 編寫器使用​​。或Cache.loadAll從JSR 107

一個簡單的方法就是到

List<MyEntity> entities = entityManager.getAll(); 
entities.forEach(e -> cache.put(e.getId(), e)); 

要使用架作家(見ehcache doc

List<Long> entities = entityManager.getAllIds(); 
entities.forEach(id -> cache.get(id)); 

最後,LOADALL只是cache.loadAll

+0

如何獲取存儲的實體f rom緩存任何例子 – springbootlearner

+0

從緩存中獲取它們或如何將它們添加到緩存中? – Henri

+0

從高速緩存中獲取實體 – springbootlearner