Hibernate是一个针对Java应用的ORM解决方案。
1. 从架构上说,Hibernate在JDBC基础之上,基于JPA或Hibernate Native API,为应用提供统一的访问层,如下图所示:
2. Hibernate实现了2组数据访问的API,一个是JavaEE标准的JPA,另一个是Hibernate独有的Hibernate Native API。
2组API之间的对应关系如下:
Hibernate Native API | Java Persistence API | 说明 |
org.hibernate.cfg.Configuration | javax.persistence.Persistence | 设置上下文配置参数 |
org.hibernate.SessionFactory | javax.persistence.EntityManagerFactory | 线程安全的全局对象,只在应用启动时初始化一次 Session对象的工厂 |
org.hibernate.Session | javax.persistence.EntityManager | 轻量级的、非线程安全的工作单元 Transaction对象的工厂 |
org.hibernate.Transaction | javax.persistence.EntityTransaction | 轻量级的、非线程安全的事务边界 |
3. Hibernate 5.1发布模块的组成
- hibernate-core, ORM及用于集成的SPI
- hibernate-entitymanager, 支持JPA
- hibernate-c3p0, 集成C3P0连接池
- hibernate-hikaricp, 集成HikariCP连接池
- hibernate-proxool, 集成Proxool连接池
- hibernate-ehcache, 集成Ehcache作为二级缓存
- hibernate-infinispan, 集成Infinispan作为二级缓存
- hibernate-java8, 在域模型中支持Java8特有的数据类型(如JSR 310 Date/Time类型)
- hibernate-spatial, 支持Spatial/GIS数据类型
- hibernate-envers, 支持对实体的历史版本的追踪
- hibernate-osgi, 支持在OSGi容器中运行Hibernate应用
参考文献:
http://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html
Hibernate
参考文献: