21、深入探索Hibernate:特性、集成与应用

深入探索Hibernate:特性、集成与应用

1. Hibernate简介

Hibernate是一款功能强大的O/R(对象关系)映射工具,在2005年初十分流行。它有两个关键特性:查询语言HQL和通过快照比较实现的自动变更检测。与iBATIS SQL Maps不同,Hibernate对底层数据库及其数据模型进行抽象,在后台生成SQL语句,而不是让用户直接操作SQL。

Hibernate的查询语言HQL提供了如连接和聚合函数等重要的关系概念。它更接近SQL,与SQL的重要区别在于查询是基于领域对象属性而非数据库列值表达的,从而与数据库模式解耦。对于熟悉SQL的开发者来说,HQL相对容易学习。

Hibernate通过快照比较进行变更检测。借助CGLIB优化反射使用,通过动态字节码生成创建持久对象的运行时代理,这种比较的性能开销并不像想象的那么高。与JDO风格的变更通知相比,Hibernate无需修改持久对象来观察其状态。

由于Hibernate对持久对象的宽松生命周期要求,处理分离对象变得容易。当Hibernate Session关闭时,持久对象会无缝从托管状态切换到非托管状态,无需显式分离步骤。对象可以在Hibernate Session之外修改,随后通过 saveOrUpdate 操作重新附加到新的Hibernate Session中。

Hibernate支持可插拔的缓存策略,为EHCache、OSCache、SwarmCache和JBoss TreeCache提供了开箱即用的实现。它对单个对象按ID进行细粒度缓存,还可选择对查询结果进行缓存。通过Hibernate进行的修改会自动更新缓存中受影响的对象和查询结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值