How hibernate/hibernate-orm works
Hibernate ORM maps Java object models to relational data, supporting query execution, transactionally synchronized persistence, and database-specific SQL behavior. The graph highlights the query-engine and dialect path, plus documented event, caching, and connection-provider capabilities. Source excerpts are limited, so links for unsampled runtime subsystems are omitted rather than inferred; broad module paths identify documented capability areas, not inspected implementations.
Main entry points: QueryEngineImpl.java Query engine · dialect Dialect translators · QueryEngine.java Query engine API · EventEngine.java Event engine
Components 17
Query processing
- Query engine
hibernate-core/src/main/java/org/hibernate/query/internal/QueryEngineImpl.java - Query options
hibernate-core/src/main/java/org/hibernate/query/spi/QueryEngineOptions.java - Query engine API
hibernate-core/src/main/java/org/hibernate/query/spi/QueryEngine.java
Database support
- Dialect resolver
hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CommunityDialectResolver.java - Dialect translators
hibernate-community-dialects/src/main/java/org/hibernate/community/dialect - JDBC services
- Relational database
ORM runtime
- Session factory builder
hibernate-core/src/main/java/org/hibernate/boot/internal/DefaultSessionFactoryBuilderService.java - Event engine
hibernate-core/src/main/java/org/hibernate/event/spi/EventEngine.java - Service registry
hibernate-core/src/main/java/org/hibernate/service/Service.java - Query cache writer
hibernate-core/src/main/java/org/hibernate/sql/results/caching/internal/QueryCachePutManagerEnabledImpl.java - Query results cache
- Time-zone mapping
hibernate-core/src/main/java/org/hibernate/annotations/TimeZoneStorageType.java
Connection providers
- Agroal provider
hibernate-agroal/src/main/java/org/hibernate/agroal/internal/AgroalConnectionProvider.java - C3P0 provider
hibernate-c3p0/src/main/java/org/hibernate/c3p0/internal/C3P0ConnectionProvider.java - JDBC connections
Other components
- Java application
Connections 14
- Java application → Query engine API: submits queries
- Query engine API → Query engine: delegates to
- Query engine → Query options: uses options
- Query engine → JDBC services: gets dialect
- Dialect resolver → Dialect translators: selects dialect
- Query engine → Dialect translators: translates queries
- Dialect translators → Relational database: produces SQL
- Session factory builder → Event engine: builds runtime
- Event engine → Service registry: loads contributors
- Query cache writer → Query results cache: writes results
- Agroal provider → JDBC connections: provides connections
- C3P0 provider → JDBC connections: provides connections
- JDBC connections → Relational database: connects to
- Time-zone mapping → Relational database: maps temporal data