2017-07-20 60 views
2

我想存儲一個變量類型的地圖<整數,地圖<字符串,地圖<字符串,整數>>>到Ehcache中。如何將這個嵌套的Map結構存儲在Ehcache中作爲一個值?如何在Ehcache中存儲嵌套的Map結構?

+0

哪個版本的ehcache?你真正的問題是什麼? – Henri

+1

@Henri我正在使用ehcache 3.我想將一個嵌套的Map結構存儲到緩存中,就像我在問題中提到的一樣。現在,我可以做到這一點..我所做的是,我創建了一個存儲HashMap的Cache,它的值類型。在將我的Map添加到緩存時,我將它轉換爲HashMap。之前,我無法存儲Map,因爲它不是可序列化的。 – Sibani

回答

0

Ehcache 3只能存儲java.io.Serializable對象。 Map是一個不可序列化的接口,但Map接口的HashMap實例實現了java.io.Serializable接口。 因此,您可以將緩存配置爲Cache<Integer, HashMap<String, HashMap<String, Integer>>>

+1

這僅適用於羣集或offheap。堆存儲可以存儲不可序列化的條目。另外,你可以指定一個序列化器。也就是說,即使接口不是可序列化的,但實現是(如Map和HashMap),您會收到警告,但它仍然有效。 – Henri

+0

如何指定序列化程序? – Sibani