Как установить ограничение размера кэша L1
Ты не можешь. Единственный вариант - clear
контекст постоянства вручную через регулярные промежутки времени, если вы хотите «контролировать» (на самом деле, clear
очень агрессивно, он удаляет все лица ) его размер.
Как установить ограничение размера кэша L2
Это зависит от основного поставщика кеша. Другими словами, это делается путем настройки реализации кэша L2. Например, EHCache имеет параметр maxElementInMemory
.
что происходит в L1 ?! сколько сущностей будет в памяти с течением времени? без каких-либо ограничений?!
Столько, сколько вы положите в него, до возможного OutOfMemoryError
, следовательно, необходимо clear
явно:
- для больших пакетных заданий (даже если они выполняются в одной транзакции)
- если используется долгоживущий
EntityManager
Но обычно используется недолговечный EntityManager
, и большинство вариантов использования не являются пакетными заданиями, поэтому это не проблема.
Смотри также