The Hibernate Session interface wraps a JDBC connection and provides methods for CRUD operations. It also holds a first-level cache and is created by SessionFactory (not during application initialization - that's when SessionFactory is created). The Session itself does not act as a factory.