Я являюсь довольно новым на ORM's. Я только начинаю читать книги и документы о Персистентности Java, API с В спящем режиме.
Я просто задался вопросом, закрытие EntityManagerFactory является похожим с jdbc закрытием соединения с базой данных?
Мы должны закрыть его после каждого сохраняемые/обновлять/удалять или нет? Если мы не закроем его, то соединение с базой данных останется открытым?
Я только что подумал, закрытие
EntityManagerFactory
похоже на закрытие соединения с базой данных jdbc?
Это не совсем так, но закрытие EntityManagerFactory
будет ближе к уничтожению всего пула соединений. Если вы хотите думать о соединении JDBC, вам следует подумать о EntityManager
.
Должны ли мы закрывать его после каждого сохранения / обновления / удаления или нет?
Создание EntityManagerFactory
- довольно дорогостоящая операция, и ее следует выполнять один раз за время существования приложения (вы закрываете
в конце приложения). Итак, нет, вам не следует закрывать его для каждой операции сохранения / обновления / удаления.
EntityManagerFactory
создается раз и навсегда, и вы обычно получаете EntityManager
на запрос, который закрывается в конце запроса ( EntityManager
на запрос является наиболее распространенным шаблоном для многопользовательского клиент-серверного приложения).
Если мы не закроем его, останется ли соединение с базой данных открытым?
Как уже было сказано, это EntityManager
, который на самом деле связан с соединением с базой данных и закрывает EntityManager
фактически освобождает соединение JDBC (чаще всего возвращает его в пул).