如何实现ehcache自填充缓存作为hibernate二级缓存

发布于 2024-12-17 12:29:55 字数 134 浏览 2 评论 0原文

我只是在探索Ehcache自填充缓存作为hibernate二级缓存

hibernate支持自填充缓存吗?
有人可以帮我找到一些与该主题相关的示例实现/文档吗?

I am just exploring on Ehcache self populating cache as hibernate second level cache.

Is hibernate support self populating cache?
Can anybody help me find few sample implementations/docs related to this topic?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风铃鹿 2024-12-24 12:29:55

瓦姆西·克里希纳,
我不太确定你想在这里实现什么,但我想你想避免两个线程从数据库加载相同的实体。现在,恐怕你无法实现这一目标了。首先,Hibernate 不在缓存中存储实体,而是这些实体的脱水表示。创建这些,然后放置它们,以便 Ehcache 层可以处理它们(它们可能会重新包装在其他一些内部类型 iirc 中),我认为这是不可能的(类型可访问性将是一个问题)。

另外,您可以使用 BlockingCache 来模仿该行为并让 Hibernate 填充缓存。问题在于,如果我没记错的话,Hibernate 不会将空值放入缓存中。不这样做最终会锁定整个缓存。

长话短说,我认为你最好让 Hibernate 自己处理对缓存的并发访问(由缓存访问策略控制),因为其中没有任何内容真正需要用户执行......

VamsiKrishna,
I'm not really sure what you try to achieve here, but I guess you want to avoid that two threads load the same entity from the DB. Now, I'm afraid you won't be able to achieve this. First, Hibernate doesn't store entities in the cache, but dehydrated representation of these. Creating these and then putting them so that the Ehcache layer can deal with them (they might rewrapped in some other internal types iirc), is all I believe not possible (Type accessibility would be one issue).

Also, you could use BlockingCache to mimic the behaviour and let Hibernate populate the Cache. The issue with that is that Hibernate won't put null values in the cache if I remember correctly. Not doing so would eventually lock your entire Cache.

Long story short, I think you're better off letting Hibernate deal with the concurrent access to the Cache (controlled by the cache access strategy) by itself, as nothing in there is really meant for a user to do...

哑剧 2024-12-24 12:29:55

来自 ehcache 网站 - http ://www.ehcache.org/documentation/user-guide/hibernate#Configure-Ehcache-as-the-Second-Level-Cache-Provider

在 hibernate.cfg.xml 添加

<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>

From ehcache website - http://www.ehcache.org/documentation/user-guide/hibernate#Configure-Ehcache-as-the-Second-Level-Cache-Provider

In hibernate.cfg.xml add

<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文