2012-09-28 106 views
2

如何實現Infinispan JPA緩存加載器?有什麼模式或方法可以在infinispan API中實現它?Infinispan JPA緩存加載器?

+0

這有意義嗎?我建議使用JDBC緩存加載器,因爲CacheLoader API全部是關於加載和存儲blob的:你不能將它映射到一些已知的模式。如果你需要更靈活的存儲,看看休眠OGM – Sanne

+0

如果它可以存儲爲實體表不像緩存它可以得到更多的優勢,寫入後面緩存 – Kalla

回答

2

Infinispan中大多數現有的CacheLoader實現都假定數據只需要存儲並將其視爲一個字節數組。 Infinispan中的集成API不會暴露除「store(Key,Value)」或「load(Key)」之外的大部分上下文。我簡單一點,但這是核心。

有一個例外是LuceneCacheLoader。這是旨在結合的Lucene Directory for Infinispan專門的工作,因爲它需要的事實

  • 它知道預期
  • 哪些類型的利用了目錄的已知需求(如訪問模式)的優勢
  • 優勢

看看獲得靈感的來源;注意我只實現了加載(這是一個CacheLoader)。

如果您同時使用Infinispan和CacheLoader控制應用程序,那麼您也可以利用這些細節。

整蠱方面:

  • 雖然即使在同一事務寫多個鍵,你就必須在緩存加載邏輯的範圍在同一時間訪問一個入口 - >難以映射關係:有對付一個實體的時間和「恢復連接」
  • 隨着後面寫您可能會收到條目亂序 - >不知道該如何處理參照完整性
  • 隨着寫後面你不打算有相同的事務上下文 - >可能可以接受?

考慮到這些,我相信你可以寫一個。多麼容易?這取決於你的應用程序。

我不確定通用解決方案是否可以正常工作。如果您發現它可以,請爲此貢獻一份力量,因爲這將是該項目的一大亮點。