Я использую JPA для сохранения записей в базе данных Oracle. Каждый раз, когда я запускаю приложение, он переходит в конкретный каталог и анализирует каждый отдельный файл и загружает в таблицы. Обычно для обработки требуется тысячи файлов.Должен ли я избегать создания EntityManagerFactory слишком много раз
Новый EntityManagerFactory создается каждый раз, когда обрабатываю файл и когда запись вставлена. Таким образом, EMF открывается тысячи раз каждый раз. Когда я отлаживаю это, я обнаружил, что создание EMF - это самый трудоемкий шаг, который занимает более 90% времени выполнения. В среднем создание новой ЭДС занимает около 2-3 секунд. Может быть, я должен просто открыть EMF-соединение один раз в начале приложения до начала запуска файлов? Хорошо ли, чтобы EMF открывалась все время?
EntityManagerFactory является потокобезопасным, и, как вы обнаружили, имеет множество настроек при получении, загрузке и проверке всего, что требуется для единицы непрерывности. EntityManager - легкий, но не потокобезопасный - эти объекты должны быть получены по мере необходимости, в то время как EMF централизованно/статически загружается. – Chris
@ Chris Спасибо за объяснение разницы. Пожалуйста, сделайте это ответом, и я закрою его. – ddd