使用JPA作为缓存机制?

时间:2011-11-01 22:03:26

标签: java caching java-ee jpa

我是JPA的新手,请原谅这个问题,如果这是非常标准的功能,但是你可以在没有数据库的情况下使用JPA,并且基本上将它用作缓存来存储整个应用程序中的对象吗?如果是,那是标准做法吗?

2 个答案:

答案 0 :(得分:3)

您可以将JPA与in memory database一起使用,因此它实际上只是一个缓存,是的。在没有数据库的情况下使用它将需要花费大量的工作来构建一个自定义的JPA提供程序,它可以对付任何存储。如果它真的是一个完整的JPA实现,只是放弃了“持久”部分,那么你花费几个月甚至几年就可以重新发明轮子来实现针对你的非RDBMS缓存的查询语言等等。

我没有到处工作,但个人肯定不会在“标准做法”下提交这样的设置。 :)

答案 1 :(得分:1)

JPA只是由HibernateEclipseLinkOpenJPA等少数主要参与者实施的API(所谓的持久性提供商)。所有这些库都实现了对象关系映射,并专注于数据库。

我没有真正得到你的动力,但你可以:

  • 使用内存数据库,如H2和任何持久性提供程序

  • 使用事实上的标准缓存解决方案,例如EhCacheJCache API抽象

  • 实现自己的实现JPA的持久性提供程序。最可怕和最糟糕的解决方案。