如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。 一种方法是定义缓存超时,但我想知道是否可以对缓存大小进行限制?
RGDS 纳维德
最佳答案
How to set L1 cache size-limitation
你不能。唯一的选择是clear
如果您想“控制”(实际上,clear
非常激进,它会删除所有实体)其大小,请定期手动更改持久性上下文。
How to set L2 cache size-limitation
这取决于底层缓存提供程序。换句话说,这是通过配置 L2 缓存实现来完成的。例如,EHCache 有 maxElementInMemory
参数。
what happens in L1?! how much entities will be in the memory as time pass? w/o any constrains ?!
你投入多少,直到最终 OutOfMemoryError
,因此需要明确地clear
:
- 大型批量作业(即使它们发生在单个事务中)
- 如果使用长期存在的
EntityManager
但通常的模式是使用短期的 EntityManager
并且大多数用例都不是批处理作业,因此这不是问题。
另请参阅
- JPA 维基书籍
关于orm - 如何在 EntityManager (JPA) L1 或 L2 缓存大小中设置限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005917/