Spring笔记8---Hibernate的集成

1. HibernateTemplate模板类

 

*装载单个实体的辅助方法。

包括了get(...),load(...),loadAll(...),refresh(...),evict(...),initialize(...),enableFliter(...)等方法,这些方法都会将具体操作委派给HiberanteCallback接口的doInHibernate()回调方法,进而让Session与数据库进行交互。

 

*存储单个实体的辅助方法。

包括了lock,save,update,saveOrUpdate,saveOrUpdateAll,replicate,persist,merge,delete,flush,clear等方法。

 

*基于HQL的查找方法

包括了find,findByNamedParam,findByValueBean等方法

 

*基于命名查询的查找方法

包括了findByNamedQuery,findByNamedQueryAndNamedParam,findByNamedQueryAndValueBean等方法

 

*基于分离式criteria风格API的查找方法的使用。

所谓分离式criteria,即在Session外部构建好criteria对象,随后将它同任意活动的session关联,从而执行CRUD操作。有方法如下:findByCriteria,findByExample。

 

*基于迭代器和批量处理的实用方法

包括了 iterate,closeIterator,bulkUpdate等方法。

 

 

2. 关于SessionFactory.getCurrentSession()方法的使用

其中有几个细节如下:

*SessionFactory.getCurrentSession()返回的Session对象是当前活动事务所征集的Session;

 

*Spring内置的DAO抽象提供了DataAccessException异常体系,适合于Spring提供的各种DAO层技术,如JDBC,Hibernate,JPA等。

 

*@Repository是应用于类的注解,其直接应用到DAO对象本身。

 

 

3. LocalSessionFactoryBean。

 

LocalSessionFactoryBean集结了Hibernate SessionFactory相关的所有元数据信息。其继承链如下:

AbstractSessionFactoryBean<--LocalSessionFactoryBean<--AnnotationSessionFactoryBean

 

Spring xml中配置LocalSessionFactoryBean的hibernateProperties属性,其功效同hibernate.properties和hibernate.cfg.xml差不多,且会优先读取,会覆盖configLocation,configLocations属性制定的配置信息。

除此之外,还可以启用mappingLocations,mappingJarLocations,mappingDirectoryLocations,mappingResources等属性,这些属性能通过查找Jar包,目录,类路径获得映射信息,或直接制定具体映射信息。

 

 

 

 

4. 基于Hibernate的Lob处理。

Hibernate提供了如BlobStringType,BlobSerializableType,BlobByteArrayType用于处理Blob字段的org.hibernate.usertype.UserType,这三个类型分别能与java中的String,Serializable,byte[]的相互转换。ClobStringType则用于处理Clob字段,实现了与java String的转换。

 

具体Lob处理实例可见Spring官方的imagedb工程实例。

 

 

5.混合使用JDBC和Hibernate。

当调用Session接口的saveOrUpdate,update等CRUD操作时,这些操作对应的SQL语句可能不会立即同步到RDBMS中,可以采用Session的刷新策略,即FlushMode的具体取值。

 

使用HibernateTemplate和SessionFactory.getCurrentSession()的差异需分场合具体分析。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值