- 浏览: 157728 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (210)
- java (44)
- javascript (5)
- 网摘 (21)
- 程序人生 (19)
- hibernate (21)
- spring (7)
- struts (1)
- jquery (2)
- mssql (3)
- mysql (3)
- oracle (7)
- 学习日记 (10)
- PowerDesigner (1)
- android (4)
- 调试 (1)
- tomcat (3)
- webapp (1)
- context (2)
- jsp (2)
- 学习 (18)
- 态度 (4)
- 坚持 (4)
- jsf (1)
- ui (1)
- css (1)
- seam (0)
- 转载 (5)
- JNDI (1)
- 创业 (1)
- 公司 (1)
- 方向 (1)
- ETL (1)
- Datastage (1)
- 数据整合 (1)
- 心情,感触 (1)
- 开发 (2)
- 测试 (1)
- 需求 (1)
- 湿身 (1)
- 网购,分类 (1)
- 驾校,转载 (1)
- 中秋,露营 (1)
- 域名 (1)
- 空间 (1)
- 网站程序 (1)
- SolrCloud (1)
- Solr (6)
- 全文库 (1)
- HBase (1)
- Hadoop (1)
- 网络应用 (1)
- 数据结构 (1)
- NoSQL (1)
- jQueryEasyUI (1)
- 面试 (1)
- 三十六计 (1)
- S2S3H4 (1)
- jar (1)
- war (1)
- web 项目 (1)
- Subversion (1)
- TortoiseSVN (1)
- MyEclipse (1)
- eclipse svn插件 (1)
- SQL2005 (1)
- ASP (1)
- 笔记 (2)
- 虚拟器、centOS、jdk、tomcat、nginx (1)
- memcached (1)
- nginx (1)
- telnet (1)
- nfs (1)
- zookeeper (2)
- window (1)
- linux (3)
- cronolog (1)
- web (1)
- mybatis (3)
- 设计模式 (1)
- 测试覆盖率 (1)
- EclEmma (1)
- tomcat7 (1)
- sore (1)
- 时间 (1)
- fackbook (0)
- facebook (1)
- IK (2)
- PKUSUMSU (1)
- openoffice (1)
- pdf (1)
- memcache (1)
- 动态词库 (1)
- 动态同义词 (1)
- centos7.3 (2)
- maven (4)
- 111 (0)
- nexus (2)
- 23种设计模式 (1)
- springboot (1)
- shiro (1)
- redis (1)
- rabbitMQ (1)
- native (1)
- dll (1)
- jasperReports (1)
- ireport (1)
最新评论
-
zhongfenglin:
学车的经历 -
Tiny_小小:
...
网购的选择 -
jrjr200411:
楼主写的好!
面对大公司和小公司的选择 -
feelboy:
说的很好。
每周四十小时,你有多少是在为自己干活?
hibernate抓取策略(单端代理的批量抓取)
保持默认,同fetch="select",如:
<many-to-one name="classes" column="classesid" fetch="select"/>
fetch="select",另外发送一条select语句抓取当前对象关联实体或集合
//fetch1,fetch2 public void testFetch1() { Session session = null; try { session = HibernateSessionFactory.getSession(); session.beginTransaction(); Student student = (Student)session.load(Student.class, 1); System.out.println("student.name=" + student.getName()); System.out.println("classes.name=" + student.getClasses().getName()); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateSessionFactory.closeSession(session); } }
设置fetch="join",如:
<many-to-one name="classes" column="classesid" fetch="join"/>
fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合
此时lazy会失效,同上
保持默认,同fetch="select",如:
<set name="students" inverse="true" cascade="all" fetch="select">
fetch="select",另外发送一条select语句抓取当前对象关联实体或集合
//fetch3,fetch4 public void testFetch2() { Session session = null; try { session = HibernateSessionFactory.getSession(); session.beginTransaction(); Classes classes = (Classes)session.load(Classes.class, 1); System.out.println("classes.name=" + classes.getName()); for (Iterator iter=classes.getStudents().iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println("student.name=" + student.getName()); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateSessionFactory.closeSession(session); } }
设置fetch="join",如:
<set name="students" inverse="true" cascade="all" fetch="join">
fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合
此时lazy会失效
设置fetch="subselect",如:
<set name="students" inverse="true" cascade="all" fetch="subselect">
fetch="subselect",另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合
//fetch5 public void testFetch3() { Session session = null; try { session = HibernateSessionFactory.getSession(); session.beginTransaction(); List classesList = session.createQuery("select c from Classes c where c.id in(1, 2, 3)").list(); for (Iterator iter=classesList.iterator(); iter.hasNext();) { Classes classes = (Classes)iter.next(); System.out.println("classes.name=" + classes.getName()); for (Iterator iter1=classes.getStudents().iterator(); iter1.hasNext();) { Student student = (Student)iter1.next(); System.out.println("student.name=" + student.getName()); } } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateSessionFactory.closeSession(session); } }
batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml
<class name="Classes" table="t_classes" batch-size="3">
List students = session.createQuery("select s from Student s where s.id in(:ids)") .setParameterList("ids", new Object[]{1, 11, 21, 31, 41, 51, 61, 71, 81, 91}) .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println("student.name=" + student.getName()); System.out.println("classes.name=" + student.getClasses().getName()); }
batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml
<set name="students" inverse="true" cascade="all" batch-size="5">
List classesList = session.createQuery("select c from Classes c").list(); for (Iterator iter=classesList.iterator(); iter.hasNext();) { Classes classes = (Classes)iter.next(); System.out.println("classes.name=" + classes.getName()); for (Iterator iter1=classes.getStudents().iterator(); iter1.hasNext();) { Student student = (Student)iter1.next(); System.out.println("student.name=" + student.getName()); } }
发表评论
-
Hibernate工作原理
2019-05-14 20:00 379hibernate 简介:hibernate是一个开源框架, ... -
SSH整合的几种最常见方式 .
2012-03-22 12:00 1232Spring实例Action的两种方式:1、Delegatin ... -
Hibernate Annotation笔记
2011-11-23 23:58 646(1)简介:在过去几年里,Hibernate不断发展,几乎 ... -
使用 Hibernate 进行大数据量的性能测试
2010-11-08 20:28 1007近日为是否在项目中使 ... -
加速你的Hibernate引擎
2010-11-08 19:35 725参考(上、下): http://blog.csdn.net/ ... -
hibernate各种属性配置
2010-10-29 10:32 1024hibernate.dialect 一个Hibern ... -
hibernate的映射
2010-10-24 17:41 728集合映射 public class CollectionMa ... -
多对多
2010-10-24 17:11 721多对多单向 User(多)对多(Role),一般都是通过中间 ... -
多对一
2010-10-24 17:00 847多对一单向 User(多)对Group(一),在User实体 ... -
一对多
2010-10-24 16:51 743一对多单向 定义两个实体类,及两个映射文件 一对多一的一端 ... -
一对一
2010-10-24 16:36 685一对一单向 定义两个类,两个映射文件一个工具类生成表 pu ... -
hibernate的继承
2010-10-24 15:54 690每棵继承树映射成一张表 1、理解如何映射 因为类继承树肯定 ... -
hibernate的锁
2010-10-24 15:48 773乐观锁 大多数基于数据版本记录机制(version)实现,一 ... -
hibernate的lazy
2010-10-24 15:44 811hibernate lazy策略可以使用在: * <cl ... -
hibernate的缓存
2010-10-24 15:33 999hibernate一级缓存 一级缓存很短和session的生命 ... -
session管理
2010-10-24 15:01 844了解Hibernate中CRUD操作 了解get和load的 ... -
hibernate查询语言hql
2010-10-24 13:46 1123在hql中关键字不区分大 ... -
hibernate基本配置
2010-10-24 13:22 8181.开发环境Window 2.开发工具MyEclispe5. ... -
Hibernate 各种数据库的配置
2010-09-13 10:33 9411. MySql连接配置 MySql数据库的hiber ... -
hibernate学习
2009-07-21 13:54 930hibernate多对多的解决Hibernate多对多的例子 ...
相关推荐
今天我们将深入探讨"day36 06-Hibernate抓取策略",特别是针对set集合的抓取策略。在阅读这篇博客文章(链接:https://364232252.iteye.com/blog/2368811)后,我们将了解到如何优化数据加载,以避免N+1查询问题,...
本篇主要关注的是Hibernate的抓取策略,特别是批量抓取技术,这对于提高应用程序性能至关重要。批量抓取能够减少数据库交互次数,从而优化查询效率。 首先,我们要理解什么是抓取策略。在Hibernate中,抓取策略是指...
今天我们要讨论的是Hibernate框架中的一个关键概念——抓取策略,特别是针对"many-to-one"关系的抓取策略。这篇博客将深入剖析这个主题,帮助你更好地理解和应用Hibernate。 Hibernate是Java领域中最流行的对象关系...
在Java的持久化框架Hibernate中,数据访问优化是至关重要的,而抓取策略(Fetch Strategy)和懒加载(Lazy Loading)则是实现这一目标的关键技术。本文将深入探讨这两个概念,并通过具体的案例进行分析。 首先,让...
描述:本文深入解析了HIBERNATE的检索策略,为读者提供了一条清晰的学习路径,重点分析了HIBERNATE中的抓取策略及其应用场景,帮助开发者更有效地管理和优化数据加载过程。 在HIBERNATE框架中,检索策略主要涉及...
hibernate3数据检索、抓取策略 、 注解的使用
本篇文章主要探讨了Hibernate中的多表查询和抓取策略,这对于理解如何高效地从数据库获取数据至关重要。 1. **Hibernate中的多表查询** Hibernate支持多种多表查询方式,类似于SQL中的连接查询: - **交叉连接*...
本章主要探讨了如何通过不同的抓取策略来提升Hibernate的性能。抓取策略涉及到当应用程序需要处理对象间的关联时,Hibernate如何有效地获取关联数据。 首先,连接抓取(Join fetching)是一种通过在SELECT语句中...
Hibernate 简介 Hibernate 开发流程 Hibernate 配置文件 Hibernate 核心接口和类 Hibernate ORM映射 HQL Hibernate 懒加载机制与抓取策略 Hibernate 缓存 Hibernate 锁机制
你将直接深入到Hibernate的富编程模型之中,贯穿映射、查询、抓取策略、事务、会话、缓存以及更多其他内容。书中图文并茂地介绍了数据库设计和优化技术的实践。在本书中,作者详尽介绍了具有Java持久化2.1标准的...
在Hibernate Day 04的学习中,我们深入探讨了如何利用Hibernate进行查询操作以及它的抓取策略,这些是理解并有效使用Hibernate的关键部分。 首先,让我们来详细了解一下Hibernate的查询方式。Hibernate提供了一个...
包括基础抓取知识和应用抓取策略,例如通过查询和配置文件动态抓取数据。 批处理:Hibernate支持JDBC批处理,以提高批量数据操作的性能。 缓冲:讲解了如何配置二级缓冲以及管理缓冲数据。 拦截器和事件:这部分...
抓取策略(Fetching)介绍了Hibernate如何抓取对象及其关联对象,包括延迟加载和立即加载的策略选择。 批量操作(Batching)涉及如何执行数据库批处理操作,这对于执行大量数据更新或插入非常有用。 缓存机制...
以上内容是Hibernate5用户手册中文版的一部分知识点,涵盖了从基础的体系架构介绍到复杂的数据抓取策略和事务控制管理。手册为开发者提供了使用Hibernate进行数据持久化的全面指导,帮助开发者更好地理解和应用该...
9. Fetching(抓取)章节,说明了如何配置和应用不同的抓取策略来优化数据库访问和提升性能。包括不抓取、通过查询动态抓取、通过配置文件动态抓取等策略。 10. 批处理章节,展示了如何通过JDBC批处理来执行批量...
- 抓取策略包括单个对象、集合的懒加载和Eager加载等,影响数据的获取时机。 11. **事务隔离级别** - 事务的隔离级别包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ...
这些配置属性包括SQL方言、外连接抓取、二进制流、二级和查询缓存、查询语言替代、Hibernate统计信息和日志系统。此外,文档还提供了如何实现命名策略和持久化类提供者的指导。文档最后提及了Hibernate的XML配置文件...
19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...
有很多人认为Hibernate天生效率比较低,确实,在普遍情况下,需要将执行转换为SQL语句的 Hibernate 的效率低于直接JDBC存取,然而,在经过比较好...Hibernate的优化策略: 1.抓取优化 2.二级缓存 3.批量数据操作 4.杂项