Hibernate中删除的优化
2015-05-24 10:22
141 查看
下面我举一个实例来说明一下:
采用2种方式删除,这里我就直接写关键代码。
方式一:
运行结果为:
方式二:
运行结果为:
从运行结果很明显看出方式二的效率比方式一高,为什会出现这种情况,可以参看文档。
iterate查询时只返回id值,而session.delete(Object),所以将会再次发送SQL语句查询出Object
list查询时返回的是所有的对象,所以将不会再发送SQL查询,每一个都减少了一次查询。
采用2种方式删除,这里我就直接写关键代码。
方式一:
public void deleteRecords() { Query query = session.createQuery("from News"); Iterator<News> iterator = query.iterate(); while(iterator.hasNext()) { session.delete(iterator.next()); } }
运行结果为:
方式二:
public void deleteRecords() { Query query = session.createQuery("from News"); List<News> list = query.list(); for(Iterator<News> iterator = list.iterator(); iterator.hasNext();) { session.delete(iterator.next()); } }
运行结果为:
从运行结果很明显看出方式二的效率比方式一高,为什会出现这种情况,可以参看文档。
iterate查询时只返回id值,而session.delete(Object),所以将会再次发送SQL语句查询出Object
list查询时返回的是所有的对象,所以将不会再发送SQL查询,每一个都减少了一次查询。
相关文章推荐
- Hibernate批处理操作优化 (批量插入、更新与删除)
- Hibernate批处理操作优化 (批量插入、更新与删除)
- hibernate 性能优化
- MyEclipse中删除对Struts、Hibernate、Spring的支持
- Hibernate 性能优化 -- 第一部分
- Hibernate性能优化
- Hibernate之性能优化策略
- hibernate 多对一删除的配置及问题
- (十六)Hibernate之性能优化之缓存管理
- Hibernate使用Delete删除数据无效
- 创建Hibernate简单的添加 删除操作
- Hibernate的检索策略和优化
- Hibernate性能优化之SessionFactory重用
- Hibernate性能优化之EHCache缓存
- Hibernate进阶:理解Hibernate中的四种状态(临时状态,持久状态,游离状态,删除状态)
- hibernate - 解决表结构外键限定为非空,级联保存和级联删除抛异常的问题
- Hibernate学习文档_查询优化
- MyEclipse中删除对Struts、Hibernate、Spring
- hibernate 优化
- MyEclipse中删除对Hibernate的支持