entityManager.flush () очистит кэш второго уровня? - PullRequest
0 голосов
/ 12 февраля 2019

Немного путают с документом entityManger.flush();

Hibernate для пакетной обработки

https://docs.jboss.org/hibernate/orm/5.0/userguide/html_single/chapters/batch/Batching.html

"Когда вы делаете новые объекты постоянными, используйте методы flush () ирегулярно очищайте сеанс (), чтобы контролировать размер кэша первого уровня. "

Я работаю над данными весенней загрузки jpa.

Первое сомнение касается приложений Restful первого уровнякэш включен или нет?

Может ли entityManager.flush() очистить кэш второго уровня?

Является ли entityManger.flush() похожим на System.gc();

1 Ответ

0 голосов
/ 12 февраля 2019

1) Кэш первого уровня создается для каждой запущенной транзакции, поэтому он всегда существует для каждого метода транзакции.

2) entityManager.flush(), не очищаетсякеш второго уровня.Он также не очищает кэш первого уровня, он заставляет любые изменения, сделанные в текущей транзакции, помещаться в физическую базу данных.

3) Является ли entityManger.flush() похожим на System.gc()?Нет, все объекты все еще находятся в куче и даже управляются текущим контекстом постоянства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...