如何取消hibernate查询

时间:2009-12-11 14:54:46

标签: hibernate

如果用户按下“搜索”按钮然后他们决定做“别的”,我们必须取消已经运行的查询。

我们使用Hibernate(和Oracle)作为持久性解决方案。 Hibernates Session接口提供cancelQuery()方法。经过一些测试,似乎cancelQuery()没有效果。

有人对此Session#cancelQuery()方法有一些经验吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

它有效,但使用Oracle JDBC驱动程序,只需要一些时间。等一两分钟。

如果您不能等待,则在后台线程中移动取消(与会话一起)并在主线程中请求新的Hibernate会话。在cancelQuery()返回之前,您无法使用旧会话。