Hibernate抓取策略
抓取策略(fetching strategy)是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。
1、 select抓取:当查询关联对象通过select语句去查询。Select发出时机,是根据lazy的值来决定的。如果lazy=false,那么在获取对象时,就会发出一条select语句,将关联对象查询出来。如果lazy!=false,那么只有在获取关联对象时才会发出select语句去查询。
2、 join抓取:当查询关联对象时,通过outer join把关联对象一起查询出来,这个时候lazy无效。所有数据立即查询出来。
3、 subselect抓取:如果要查询关联集合的内容。会查询之前已经查出的对象的所有关联集合。(Category对应了多个Book)如果查询了(”文学”,”历史”);那么在使用(lazy=true)”文学”或”历史”的集合对象(”所对应的书籍信息”).会将(“文学”和”历史”)的书籍信息一起查询。如果lazy=false;在查询“多个分类时”会将所有分类的书籍信息一起查询。