Do Hibernate использует кеш (второй уровень или иным образом), если все, что я делаю, это пакетные вставки?
Вновь вставленные экземпляры сущностей кэшируются в кеше L1 (кэш уровня сеанса) перед их сбросом в базу данных (см. Раздел 13. Пакетная обработка ). необходимость flush
и clear
вашего сеанса регулярно, чтобы предотвратить OOM.
Кроме того, StatelessSession vs Session изменит ответ?
Да. Как написано в разделе 13.3. Интерфейс StatelessSession : A StatelessSession
не имеет ассоциированного с ним контекста персистентности и не предоставляет многие семантики жизненного цикла более высокого уровня. В частности, сеанс без сохранения состояния не реализует кэш первого уровня и не взаимодействует с каким-либо кэшем второго уровня или запроса .
Что, если я использовал сеанс с размером пакета JDBC 50?
Это просто означает, что вы должны flush
/ clear
сеанс каждые 50 вставок.