发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 3 4 下一页 Go 4

hibernate的批量删除,大家怎么做的?

    
2003-09-11 10:48
赞助商链接

有个业务要求,需要批量删除,找了半天,没有找到,只有一个近似的,
是利用主子表的方式,删除所有子表。

2003-09-11 11:09

session.delete("from Cat as c where ...");

把 hibernate.jdbc.batch_size 50 尽量设的大些,可以得到接近JDBC的删除速度。

2003-09-11 11:12

>可以得到接近JDBC的删除速度<

我觉得不可能,hibernate要先select出来,再delete。

还是写jdbc来做batch delete,update吧

2003-09-11 11:19

可不可能自己试试就知道了。

我的测试:

Oracle817,ojdbc14.jar 表记录1万条,全部删除。

JDBC:

sql语句 delete from cat
速度:平均6s

Hibernate:

session.delete("from Cat as c");
==> select id,name,sex,weight from cat;
==> delete from cat where id = ?

Batch Size = 0 速度: 25s
Batch Size = 50 速度: 6s

2003-09-11 11:21

是这样,看了源代码,是查一条删一条:(。

4Go 1 2 3 4 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com