文章目录
官网
<Java Persistence with Hibernate, 2nd Edition>
https://docs.jboss.org/hibernate/orm/current/quickstart/html_single/
https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html
hibernate是一款非常流行的ORM数据持久层框架,相关资料非常多,此处仅作知识库更新。
架构:
SessionFactory (org.hibernate.SessionFactory)
应用领域模型到数据库的线程安全的映射表现。作为org.hibernate.Session的实例工厂。JPA的EntityManagerFactory与SessionFactory相当,而且这两个都是 SessionFactory的实现。
创建SessionFactory非常昂贵,因此,对于任何给定的数据库,应用程序应该只有一个关联的SessionFactory。SessionFactory维护Hibernate跨所有会话使用的服务,例如二级缓存、连接池、事务系统集成等。
Session (org.hibernate.Session)
单线程的,短生命周期的“Unit Of Work"对象。在JPA中由EntityManager代替。
Transaction (org.hibernate.Transaction)
应用用来划分单个物理事务边界的单线程,短期对象。JPA中是EntityTransaction。均用以隔离JDBC或者JTA的事务系统。
领域模型—与DDD有区别
也被称为持久化类
在hibernate的使用里,entity可以近似与数据库表结构一致,说近似是因为还有外键的情况。
那我们来谈谈hibernate如何来解决常见的设计问题。
谈到分库分表,一般人都会想到持久化层采用mybatis,但是hibernate到底能不能用于分库分表的应用场景中?