В чем отличия между Datasouce, SessionFactory, Entity manager
подскажите, правильно ли я понимаю
DataSource - это объект, который позволяет для JDBC Template получать соединения с БД. Точнее он содержит пул соединений, а jdbcTemplate берет из пула
SessionFactory - это объект Hibernate, который предоставляет сессии - по факту те же соединения с БД.
Поскольку они оба создаются примерно одинаково - указывается путь до БД, логин, пароль и поскольку они оба предоставляют соединения с БД, делаю вывод что это по факту одинаковые объекты, просто 1 нужен для работы с jdbcTemplate , другой для Hibernate
И EntityManager - это тоже самое что SessionFactory, только EntityManager подходит под JPA и он будет работать хоть с Hibernate, хоть с другой реализацией JPA (видимо SessonFactory чет все таки еще делает, раз его в Hibernate создали)
Ответы (1 шт):
Нет.
DataSource- инкапсулирует информацию о подключении к БД, в нем есть все необходимое, чтобы установить соединение.Connection- активное соединение с БД, которое является абстракцией над драйвером, и позволяет взаимодействовать с БД посредством JDBC контракта.Session- сессия Hibernate, которая является JPA прослойкой между логикой иConnection, предоставляет реализованный контракт и содержит в себеPersistenceContextPersistenceContext- кэш/реплика используемых данных из БД в рамках сессии, хранит в себеEntityи механизмы синхронизации с БДEntityManager- интерфейс из спецификации JPA, который позволяет абстрагироваться от реализации JPA (одной из которых является Hibernate и егоSession)SessionFactory- объект, который инкапсулирует в себе все, что необходимо для созданияSession
P.S. Session как правило имеет скоуп, синхронизированный с транзакцией.