2011-11-01 35 views
2

我是JPA的新手,如果這是非常標準的功能,請原諒這個問題,但是您可以在沒有數據庫的情況下使用JPA,並且基本上將它用作緩存來存儲應用程序中的對象?如果是這樣,那是標準做法嗎?使用JPA作爲緩存機制?

回答

3

您可以使用JPA與in memory database,所以它實際上只是一個緩存,是的。使用它'沒有數據庫'完全需要大量的工作來構建一個自定義的JPA提供程序,這個提供程序可以對付你的存儲。如果它確實是一個完整的JPA實現,只是遺漏了「持久性」部分,那麼如果不是僅僅幾年,就要花費幾個月的時間才能重新發明輪子,以針對非RDBMS高速緩存等實現查詢語言。

我沒有到處工作,但個人肯定不會在'標準做法'下提交這樣的設置。 :)

+0

哈哈,謝謝你的信息 – JCab

1

JPA是隻是一些主要的球員,像HibernateEclipseLinkOpenJPA實現的API(所謂持久性提供)。所有這些庫都實現對象關係映射,並將重點放在數據庫上。

我真的不明白你的動機,但你可以:

  • 使用內存數據庫像H2任何持久性提供

  • 使用事實上的標準緩存解決方案,如EhCacheJCache API抽象

  • 實現您自己的持久性提供者實現JPA。最可怕和最糟糕的解決方案。

+0

謝謝,這絕對是更多的理論,「你能做這個問題嗎?」我意識到EhCache和Memcache等,但它真的只是好奇心,看看它是否有可能。 – JCab