Hibernate中的抓取策略

2014-11-24 13:47:33 · 作者: · 浏览: 3

当应用程序需要在关联关系间进行导航的时候, Hibernate如何获取关联对象的策略,它是对Hibernate性能的一种优化策略。


Hibernate中定义了几种抓取策略:


1.连接抓取(Join fetching)


Hibernate通过在SELECT语句使用OUTER JOIN(外连接)来获得对象的关联实例或者关联集合。


2.查询抓取(Select fetching)


另外发送一条 SELECT 语句抓取当前对象的关联实体或集合。除非你显式的指定lazy="false"禁止延迟抓取,否则只有当你真正访问关联关系的时候,才会执行第二条select语句。


3.子查询抓取(Subselect fetching)


另外发送一条SELECT 语句抓取在前面查询到(或者抓取到)的所有实体对象的关联集合。除非你显式的指定lazy="false" 禁止延迟抓取,否则只有当你真正访问关联关系的时候,才会执行第二条select语句。


4.批量抓取(Batch fetching)


对查询抓取的优化方案, 通过指定一个主键或外键列表,Hibernate使用单条SELECT语句获取一批对象实例或集合。