Hibernate的检索策略

来源:互联网 发布:淘宝购买呼死你代名词 编辑:程序博客网 时间:2024/04/25 18:03

 Hibernate的检索策略有三种:

1 , 立即检索

      Hibernate的默认检索策略,当session 的 find() 方法时,会把相关联的表的数据全部查询出来,缺点:1,生成的select语句过多,频繁访问DB 。 2, 有时相关表的数据不需要,白白占用内存空间

2 ,延迟检索

        当不使用相关表的数据时, 在映射文件中设置的<SET .......  lazy="true">,此时不会立即检索相关表,当应用程序第一次要使用相关表的数据时,才从DB的相关表中检索相关数据。节省了空间,提高了效率。  限制:只有当集合代理类的实例处于持久化状态时,才可以初始化,以后才可使用,否则会抛出延迟初始化错误:ERROR:LazerInitiater:63........

3 ,迫切左外连接

       默认情况下,多对一关联采用的方法。如果把映射文件的<many-to-one> 的元素outer-join 值设为"true",则总是采用此策略。优点:select 语句少,不管对象是处于持久化状态,还是处于游离状态,应用程序都可以从一个对象导航到和它相关联的对象。 缺点:可能会白白浪费一些内在空间,还有,复杂的DB连接也会影响检索性能。  适用范围: 多对一,一对一,(在一的那一方适用),应用程序需要立即访问的对象,DB的表连接性能好

       在应用程序中显示指定3:

session.find( " from Customer as c where c.id=1 " );

session.find(" from Customer as c left join fetch c.orders where c.id=1 " )

第一句会采用映射文件中的检索策略。而第二句会采用3,会覆盖映射文件的策略。都会调用语句:  select * from CUSTOMERS left outer join ORDERS on CUSTOMERS.ID=ORDERS.CUSTOMERS_ID where CUSTOMERS.ID=1  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 户户通没有信号怎么办视频 雪花泥粘衣服上怎么办 遗产按份额处分判决后怎么办 宝马后驱车下雪天怎么办 宝马后驱车路滑怎么办 车子陷入泥地里怎么办 深圳居住证签注过期了怎么办 手机不能播放视频乱码了怎么办 被加密的视频无法观看怎么办 苹果5忘记id密码怎么办 七个月宝宝脾胃不好怎么办 八个月宝宝脾虚怎么办 七个月宝宝脾胃虚怎么办 海岛奇兵点错了怎么办 螳螂的脚断了怎么办 海岛奇兵打不过玩家怎么办 海岛奇兵资源满了怎么办 海岛奇兵杯越来越多打不玩家怎么办 海岛奇兵控杯技巧 杯数太高怎么办 海岛奇兵发现求救信号怎么办 海岛奇兵被打了怎么办 小鱼翅卡喉咙了怎么办 鱼翅卡在喉咙里怎么办 斗鱼身份证被使用怎么办 做的鱼丸太腥了怎么办 做鱼丸太稀了怎么办 斗鱼手机号换了怎么办 斗鱼直播掉帧怎么办 手机一直卡顿点不动怎么办呢 斗鱼直播分值底怎么办 斗鱼6000鱼丸怎么办卡 斗鱼直播没人看怎么办 淘宝直播间没人气怎么办 挂水了还是有热度怎么办 陌陌工会不结算工资怎么办 滴滴给了差评怎么办 饿了么星级低怎么办 滴滴乘客给低星怎么办 蘑菇街自动收货前还没到怎么办 小主播人气太少别人看不到怎么办 税收分类编码不可用怎么办