Hibernate批量删除问题

我使用这样的hql语句删除
[code="java"]
delete from User where id in(16.18)
[/code]

他发出的sql语句是:
[code="java"]
delete from t_user where id in (16 , 18)
[/code]

并没有发出查询16 18两个User对象,然后再删除这两个user对象

为什么说Hibernate批量删除效率低呢?那位解释解释
[b]问题补充:[/b]
[quote]
这个方式进行删除时,是不用对user对象进行查询了,所以效果跟JDBC一样快了,但是带来了个后果就是不能使用Hibernate的缓存了。在这里删除的数据,在缓存中是不能体现出来的,必须在后面进行主动的更新。
Java代码
session.flush();

[/quote]

session.flush(); 是将缓存数据与数据库数据同步

[quote]
这个操作带来的开销并不一定比查询出来再删除带来的开销要小的。

所以通常的删除方式是将要删除的对象找出来再进行删除。

[/quote]

“将要删除的对象找出来再进行删除。”
将事务提交时,hibernate也会执行session.flush啊

[b]问题补充:[/b]
[quote]你写HQL语句 当遇到解析不出的关键字时,Hibernate会直接把它翻译成普通的SQL语句进行操作的[/quote]

我写的HQL里面有解析不出的关键字吗?
谢谢

查看全部
ddf168913
ddf168913
2009/10/10 16:32
  • hibernate
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

0个回复