如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。一种方法是为缓存定义超时,但我想知道是否可以限制缓存大小?
RGDS 纳维德
如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。一种方法是为缓存定义超时,但我想知道是否可以限制缓存大小?
RGDS 纳维德
如何设置 L1 缓存大小限制
你不能。如果你想“控制”(实际上是非常激进的,它会删除所有实体)它的大小,唯一的选择是clear
定期手动持久化上下文。clear
如何设置 L2 缓存大小限制
这取决于底层缓存提供程序。换句话说,这是通过配置 L2 缓存实现来完成的。例如,EHCache 有一个maxElementInMemory
参数。
L1会发生什么?!随着时间的流逝,内存中会有多少实体?没有任何约束?!
尽你所能,直到最终OutOfMemoryError
,因此需要clear
明确:
EntityManager
如果使用long-lived但是通常的模式是使用短暂的EntityManager
,并且大多数用例不是批处理作业,所以这不是问题。