Hibernate源码分析

  • 介绍

本文是研究Hibernate源码时的记录,希望能给各位在看源码时能提供一些思路。有兴趣的,可以在下面留言讨论。,

  • SettingFactory

buildSettings初始化Hibernate:

事务设置

JDBC和连接设置

SQL生成设置

Query解析设置

二级缓存设置

SQL异常包装

统计和日志

表自动生成设置

  • 实体类映射

AnnotationSessionFactoryBean在函数afterPropertiesSet中会将实体类绑定到Table对象上。

在AnnotationConfigruation类中会调用AnnotationBinder.bindClass( clazz, inheritanceStatePerClass, mappings )来进行绑定。

  • org.hibernate.jdbc.util.SQLStatementLogger

 

  • 名称映射策略

org.hibernate.cfg.NamingStrategy该接口定义了类名-表名,属性名-字段名等。

org.hibernate.cfg.EJB3NamingStrategy

处理SQL语句的输出(格式化)

  • 拦截器

org.hibernate.Interceptor为拦截器的根接口,该接口中的抽象方法比较多;出于方便,可以使用org.hibernate.EmptyInterceptor这个接口。

事务相关函数

操作持久化对象相关函数

操作集合对象相关函数

其他函数

  • 事件机制

org.hibernate.event.EventListeners该类中定义了Hibernate支持的所有事件监听器。本文有一篇文章介绍的是“Hibernate字段数据加密”,就是利用了Hibernate的事件机制实现的。

  • 统计

org.hibernate.stat.Statistics为统计接口

CategorizedStatistics
CategorizedStatistics

 

  • 远程管理

org.hibernate.jmx.StatisticsService

  • EJB支持

Hibernate支持JPA的一些持久化注解类,对此的支持您可以从下面的介绍来了解到。

org.hibernate.cfg.Ejb3Column该类提供了对JPA注解类javax.persistence.Column的解析。

未完待续。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注