本文主要是学习hibernate的核心接口和可扩展点
1、hibernate的5个核心接口
1)Configuration接口,配置hibernate,启动hibernate,创建sessionfactory对象
2)SessionFactory接口,根据配置文件初始化hibernate,创建session对象,线程安全并且是重量级的,不能随意的销毁,一般一个应用一个数据库对应一个实例
3)Session接口,hibernate执行的基本单元,负责save,delete,update,load,find对象
4)Transaction,事务管理,底层基于jdbc或者jta
5)Query和Criteria接口,执行数据库的查询
2、hibernate回调接口
当一个对象发生了特定的事件,例如对象被保存,删除,更新和装载时,hibernate应用可以通过回调接口来响应这一事件,做相应的操作,有两类实现方式:
1)持久化类实现LifeCycle和Validatabale接口,这种方式使Hibernate 接口渗透到了持久化类中,影响持久化类的可移植性,不推荐使用。
2)Interceptor接口,应用程序可以定义专门的拦截器实现类,由它负责事件的响应,这种方式持久化类不会受到影响。
3、Hibernate的扩展点
1)定制主键的生成策略,IdentifierGenarator接口
2)定制本地SQL方言,Dialect抽象类
3)定制缓存机制,Cache和CacheProvider接口
4)定制JDBC连接管理,ConnectionProvider接口
5)定制事务管理,TransactionFactory,Transaction,TransactionManagerLookup接口
6)定制ORM策略,classPersister接口及子接口
7)定制属性访问策略,PropertyAccessor接口
8)创建代理,ProxyFactory接口
9)定制客户化映射关系,UserType和CompositeUserType接口
除了最后一个,Hibernate为每一个都提供了默认实现方式,扩展时可参照默认实现方式的源码
4、java,hibernate,sql类型映射