Hibernate-HQL-Criteria-查询优化

1 查询总结

  1. oid查询-get
  2. 对象属性导航查询
  3. HQL
  4. Criteria
  5. 原生SQL

2 查询-HQL语法

2.1 基础语法

2.2 进阶语法

排序

条件

分页

聚合

 

投影

多表查询

SQL

 

HQL

HQL语法

内连接

 左外链接

右外连接

3 查询-Criteria语法

3.1 语法

基本

条件

分页

排序

统计

3.2 离线查询

 非离线

离线

演示

4 查询优化

4.1 类级别查询

get方法:没有任何策略.调用即立即查询数据库加载数据.

load方法: 应用类级别的加载策略

lazy(默认值):true, 查询类时,会返回代理对象.会在使用属性时,根据关联的session查询数据库.加载数据.

lazy:false. load方法会与get方法没有任何区别.调用时即加载数据.

 结论:为了提高效率.建议使用延迟加载(懒加载)

注意:使用懒加载时要确保,调用属性加载数据时,session还是打开的.不然会抛出异常

4.2 关联级别查询

集合策略

关联属性策略

结论:为了提高效率.fetch的选择上应选择select. lazy的取值应选择 true. 全部使用默认值.

no-session问题解决: 扩大session的作用范围.


作者:8亩田
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.

本文如对您有帮助,还请多帮 【推荐】 下此文。
如果喜欢我的文章,请关注我的公众号
如果有疑问,请下面留言

学而不思则罔 思而不学则殆
原文地址:https://www.cnblogs.com/liu-wang/p/8682437.html