• hibernate简单入门教程(五)---------检索策略


    hibernate作为一个持久化的插件具有非常丰富的特性功能。其中一个功能叫做检索策略。

    检索策略意味着通过一定判断决定是否访问数据库。有时候可以有效的减少访问数据库的次数。

    传统软件公司很多时候用不上。

    其目的是减少内存消耗,减少数据库访问。

    类检索策略:

      1,检索策略的使用方式在于load()方法调用,get,list方法属于立即检索,Sessionload()方法和Queryiterator()方法支持延迟检索策略,当被用到的时候才加载。

      2,检索办法分为立即查询与延时查询两种。立即查询与延时查询两种办法。区别在于延时查询属于用到了才会查询,用在关联类上,立即查询则是全部瞬间查询出来。

      3、通过<class>标签的lazy属性进行控制,如果为true就是延时加载,默认为true.

    一对多多对多检索策略:

      1,通过<set>属性进行控制

      2, lazy增加一个强延时加载功能:extra:使用额外延迟加载,当程序第一次访问关联持久化对象的 size(), contains() isEmpty() 方法时,也不会整体查询数据库,而是采取更简单的方式查询。

      3,增加fetch:查询关联对象的方式。join/select (默认) / subselect。

        当fetch=lazy时查询方式是左外链接方式。这时候因为查询语句只有一条所以lazy无效。

        当fetch=select时查询方式正常。查询主表的时候只查询主表内容。查询方式为:select * from id=XX

        fetch=subselect情况下:主表信息按照类检索策略执行,查询方式为:select * from id in ( select # from ###)

        只有hql才支持fetch=subselect。

    多对一、一对一检索策略 

        lazy:是否延迟加载,

        false:不使用延迟加载

        proxy:代理

        no-proxy:不使用代理模式。

        fetch:查询关联对象的方式。join/select (默认)

        proxy延迟加载策略一致类的加载策略默认是true。延时查询本来就是代理模式

     

  • 相关阅读:
    iOS 自带系统语音识别
    对iOS10新增Api的详细探究
    iOS 技术前瞻
    iOS 之 byte NSString NSData类型转换
    iOS 文本属性
    基本力
    xamarin mac 基础知识 之 界面
    xamarin mac 之 基础知识
    xamarin mac 之 资料
    I方法 thinkphp
  • 原文地址:https://www.cnblogs.com/blackdeng/p/7070610.html
Copyright © 2020-2023  润新知