1.detached在抓取策略为 jion显式左外连接查询情况下 会产生笛卡儿积现象 DetachedCriteria dc = DetachedCriteria.forClass(Topic.class); dc.add(Restrictions.like("title", "%%")); Criteria criteria = dc.getExecutableCriteria(session); criteria.setFirstResult((currentp…
1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * from A inner join B on 条件; 隐式内连接: Select * from A,B where 条件; [外连接] 左外连接:left outer join Select * from A left outer join B on 条件; 右外连接:right outer jo…
最近在研究 Hibernate 的性能优化的时候碰到了"抓取策略", 由于以前没有详细的研究过, 所以到处找资料, 但是无论从一些讲 Hibernate 书籍,还是他人 Blog 中都没有找到详细 介绍 Hibernate 文档中所说的原汁原味的抓取策略, 综合懒加载等等特性混在了一起, 所 以在这自己在借鉴了他人的基础上研究了下原汁原味的 Hibernate 四种"抓取策略"; 连 接抓取(Join fetching) - Hibernate通过 在SELECT语…
原文出处:http://www.cnblogs.com/rongxh7/archive/2010/05/12/1733088.html     尊重原作者,访问原创地址 最近在研究 Hibernate 的性能优化的时候碰到了"抓取策略", 由于以前没有详细的研究过, 所以到处找资料, 但是无论从一些讲 Hibernate 书籍,还是他人 Blog 中都没有找到详细 介绍 Hibernate 文档中所说的原汁原味的抓取策略, 综合懒加载等等特性混在了一起, 所 以在这自己在借鉴了他人的基…
Hibernate的查询方式 1.OID查询 hibernate根据对象的OID(主键)进行检索 使用get方法 Customer customer=session.get(Customer.class,1l); 使用load方法 Customer customer=session.load(Customer.class,1l); 2.对象导航检索 hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式 LinkMan linkMan=Session.get(LinkMan.…
在上一篇博客中,介绍了Hibernate的缓存机制.合理的配置缓存,可以极大程度上优化Hibernate的性能.这篇博客,介绍另外一个调优方式:抓取策略. 一.什么是抓取策略 抓取策略(fetching strategy):当应用程序需要在关联关系间进行导航的时候,Hibernate如何获取关联对象的策略.抓取策略可以在O / R映射的元数据中声明,也可以在特定的HQL或条件查询(Criteria Query)中重载声明. 二.Hibernate的抓取策略 在Hibernate中,主要包括四种抓…
目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 3. HQL查询 3.1 简单查询 3.2 别名查询 3.3 排序查询 3.4 条件查询 3.4 投影查询 3.5 分页查询 3.6 分组统计查询 3.7 HQL的多表查询 3.7.1 SQL的多表查询 3.7.2 HQL的多表查询 4. QBC查询 4.1 简单查询 4.2 排序查询 4.3 分页…
假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下: 假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: Session session=HibernateUtil.getSession(); Book book =(Book) session.get(Book.class,2); System.out.println(book.getName()); 当执行完第二行代码,还未执行第三行时,控制台已经打印出了sql语句,执行第三行时打印…
一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取对象的关联对象或者关联集合. (2)查询抓取(select Fetch):这种抓取方式会另外发送一条select语句抓取当前对象的关联实体或者集合.除非指定lazy=false,否则只有在真正访问关联关系的时候才会执行第二条select语句. (3)子查询抓取(subselect Fetch):另外…
原文 :http://4045060.blog.51cto.com/4035060/1088025 部分参考:http://www.cnblogs.com/rongxh7/archive/2010/05/12/1733088.html Hibernate3 定义了如下几种抓取策略: 连接抓取(Join fetching) - Hibernate通过 在SELECT语句使用OUTER JOIN (外连接)来 获得对象的关联实例或者关联集合. 查询抓取(Select fetching) - 另外发送…