2

如何设置 L1 或 L2 缓存大小限制。我担心增加缓存大小。一种方法是为缓存定义超时,但我想知道是否可以限制缓存大小?

RGDS 纳维德

4

1 回答 1

3

如何设置 L1 缓存大小限制

你不能。如果你想“控制”(实际上是非常激进的,它会删除所有实体)它的大小,唯一的选择是clear定期手动持久化上下文。clear

如何设置 L2 缓存大小限制

这取决于底层缓存提供程序。换句话说,这是通过配置 L2 缓存实现来完成的。例如,EHCache 有一个maxElementInMemory参数。


L1会发生什么?!随着时间的流逝,内存中会有多少实体?没有任何约束?!

尽你所能,直到最终OutOfMemoryError,因此需要clear明确:

  • 在大批量作业上(即使它们发生在单个事务中)
  • EntityManager如果使用long-lived

但是通常的模式是使用短暂的EntityManager,并且大多数用例不是批处理作业,所以这不是问题。

也可以看看

于 2010-10-23T20:32:47.990 回答