hibernate的查询方式以及抓取策略

  1. OID查询
    OID检索:hibernate根据对象的OID(主键)进行检索
    使用get方法:session.get
    使用load方法:session.load

  2. 对象导航检索
    对象导航检索:hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式

  3. HQL查询
    HQL查询:Hibernate Query Language,Hibernate的查询语言,是一种面向对象的方式的查询语言,语法类似SQL。通过session.createQuery(),用于接收一个HQL进行查询方式。
    HQL简单查询:查询的时候注意toString方法在相关联的双方只能写一方,否则会出现死循环,HQL语句中不能使用*号查询(聚合函数不影响)
    HQL别名查询
    HQL排序查询:默认是升序
    HQL条件查询:分为按位置绑定和按名称绑定
    HQL投影查询:查询对象的某个或某些属性,封装到对象的查询需要用到构造方法,在类里添加需要查询的构造,注意查询多个属性时因为属性可能不同,所以采用Object数组进行接收。
    HQL分页查询:query.setFirstResult();query.setMaxResult();
    HQL分组查询
    HQL多表查询
    连接查询:
    交叉连接:笛卡尔积
    内连接:inner join
    隐式内连接:select * from A,B where A.id = B.aid;
    显示内连接:select * from A inner join B on A.id = B.aid;
    外连接:
    左外连接:select * from A left outer join B on A.id= B.aid;
    右外连接:select * from A right outer join B on A.id = B.aid;
    子查询
    HQL的多表查询:连接查询分为显示内连接,隐式内连接,迫切内连接;外链接分为左外连接,右外连接和迫切左外连接。

  4. QBC检索
    QBC查询:Query By Criteria,条件查询。是一种更加面向对象化的查询的方式。
    简单查询
    排序查询
    分页查询
    条件查询
    统计查询
    离线条件查询:DetachedCriteria

  5. hibernate的抓取策略(hibernate的优化)
    什么是延迟加载:lazy(懒加载)。执行到该行代码的时候,不会发送语句去进行查询,在真正使用这个对象的属性的时候才会发送SQL语句进行查询。
    延迟加载的分类:类级别的延迟加载和关联级别的延迟加载
    抓取策略通常与延迟加载一起使用,优化语句

  6. 抓取策略概述
    通过一个对象抓取到关联对象需要发送SQL语句,SQL语句如何发送,发送成什么样格式通过策略进行配置。

  7. 上的fetch和lazy
    fetch:抓取策略,控制SQL语句格式
    选项有select,join,subselect
    lazy:延迟加载,控制查询关联对象的时候是否采用延迟
    选项有:true false

  8. 上的fetch和lazy
    fetch:抓取策略,控制SQL语句格式。选项有select,join
    lazy :延迟加载,控制查询关联对象的时候是否采用延迟。选项有proxy(根据另一端的上的lazy值确定),false

猜你喜欢

转载自blog.csdn.net/LetonLIU/article/details/89209496