hibernate之查询进行优化
2017-02-25 20:02
162 查看
技术分析之延迟加载
技术分析之Hibernate框架的查询策略
技术分析之在set标签上配置策略
技术分析之在man-to-one标签上配置策略
1. 延迟加载先获取到代理对象,当真正使用到该对象中的属性的时候,才会发送SQL语句,是Hibernate框架提升性能的方式 2. 类级别的延迟加载 * Session对象的load方法默认就是延迟加载 * Customer c = session.load(Customer.class, 1L);没有发送SQL语句,当使用该对象的属性时,才发送SQL语句 * 使类级别的延迟加载失效 * 在<class>标签上配置lazy=”false” * Hibernate.initialize(Object proxy); 3. 关联级别的延迟加载(查询某个客户,当查看该客户下的所有联系人是是否是延迟加载) * 默认是延迟加载 Session session = HibernateUtils.getCurrentSession(); Transaction tr = session.beginTransaction(); Customer c = session.get(Customer.class, 1L); System.out.println("============="); System.out.println(c.getLinkmans().size()); tr.commit();
技术分析之Hibernate框架的查询策略
1. 查询策略:使用Hibernate查询一个对象的时候,查询其关联对象.应该如何查询.是Hibernate的一种优化手段!!! 2. Hibernate框架的检索策略解决的问题 * 查询的时机 Customer c1 = (Customer) session.get(Customer.class, 1); System.out.println(c1.getLinkmans().size()); * lazy属性解决查询的时机的问题,需要配置是否采用延迟加载!! * 查询的语句形式 List<Customer> list = session.createQuery("from Customer").list(); for(Customer c : list){ System.out.println(c.getLinkmans()); } * fetch属性就可以解决查询语句的形式的问题!!
技术分析之在set标签上配置策略
1. 在<set>标签上使用fetch和lazy属性 * fetch的取值 -- 控制SQL语句生成的格式 * select -- 默认值.发送查询语句 * join -- 连接查询.发送的是一条迫切左外连接!!!配置了join.lazy就失效了 * subselect -- 子查询.发送一条子查询查询其关联对象.(需要使用list()方法进行测试) * lazy的取值 -- 查找关联对象的时候是否采用延迟! * true -- 默认.延迟 * false -- 不延迟 * extra -- 及其懒惰 2. set标签上的默认值是fetch="select"和lazy="true" 3. 总结:Hibernate框架都采用了默认值,开发中基本上使用的都是默认值。特殊的情况。
技术分析之在man-to-one标签上配置策略
1. 在<many-to-one>标签上使用fetch和lazy属性 * fetch的取值 -- 控制SQL的格式. * select -- 默认。发送基本select语句查询 * join -- 发送迫切左外连接查询 * lazy的取值 -- 控制加载关联对象是否采用延迟. * false -- 不采用延迟加载. * proxy -- 默认值.代理.现在是否采用延迟. * 由另一端的<class>上的lazy确定.如果这端的class上的lazy=”true”.proxy的值就是true(延迟加载). * 如果class上lazy=”false”.proxy的值就是false(不采用延迟.) 2. 在<many-to-one>标签上的默认值是fetch="select"和proxy
相关文章推荐
- Hibernate对多个表进行查询,结果集的处理方式
- Hibernate优化查询性能手段
- hibernate查询性能优化
- Hibernate在Oracle数据库中进行模糊查询日期
- hibernate之查询(给结果进行分页)
- [Hibernate]在用hibernate3.0进行查询时,java.lang.NoClassDefFoundError: antlr/ANTLRException【问题记录】
- Hibernate优化查询策略
- hibernate之优化抓取(选择抓取策略之通过子查询预抓取集合--实例)
- hibernate之优化抓取(选择抓取策略之通过子查询预抓取集合)
- Hibernate优化查询策略
- 优化Hibernate查询
- 数据库查询性能优化(合理使用索引|避免或简化排序|避免对大型表进行全表顺序扫描|避免使用相关的子查询|避免使用通配符匹配 )
- 根据DB引擎选择合适的索引进行查询优化
- hibernate之优化抓取(优化指导方针---n+1查询问题)
- 详解如何对Hibernate进行优化的方案
- 如何结合hibernate进行复杂的查询功能设计
- 用hibernate进行限制查询
- 在配置文件中获取数据源,然后在hibernate中用sql语句进行查询操作
- 让存储过程中的查询语句按照不同查询条件进行优化(即每次查询都使用参数option(recompile))
- Hibernate优化查询策略