如何在 EntityManager (JPA) L1 或 L2 缓存大小中设置限制
如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。 一种方法是定义缓存超时,但我想知道是否可以对缓存大小进行限制?
RGDS 纳维德
How to set L1 or L2 cache size-limitation. I concern of increasing the cache-size.
One way is defining timeout for cache but i want to know is it possible to make a constraint for cache size or not?
RGDS
Navid
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能。唯一的选择是
clear如果您想“控制”,请定期手动持久化上下文(实际上,
clear
非常激进,它会删除所有实体)其大小。这取决于底层缓存提供程序。换句话说,这是通过配置 L2 缓存实现来完成的。例如,EHCache 有一个
maxElementInMemory
参数。无论您输入多少,直到最终
OutOfMemoryError
,因此需要明确地清除
:EntityManager
但通常的模式是使用短期的 EntityManager,并且大多数用例都不是批处理作业,因此这不是问题。
另请参阅
You can't. The only option is to
clear
the persistence context manually at regular intervals if you want to "control" (actually,clear
is very aggressive, it removes all entities) its size.This depends on the underlying cache provider. In other words, this is done by configuring the L2 cache implementation. For example, EHCache has a
maxElementInMemory
parameter.As much as you put in it, until an eventual
OutOfMemoryError
, hence the need toclear
explicitly:EntityManager
is usedBut the usual pattern is to use a short-lived
EntityManager
and most use cases are not batch jobs so this is not a concern.See also