如果用户按下“搜索”按钮然后他们决定做“别的”,我们必须取消已经运行的查询。
我们使用Hibernate(和Oracle)作为持久性解决方案。 Hibernates Session接口提供cancelQuery()
方法。经过一些测试,似乎cancelQuery()
没有效果。
有人对此Session#cancelQuery()
方法有一些经验吗?
谢谢!
答案 0 :(得分:6)
它有效,但使用Oracle JDBC驱动程序,只需要一些时间。等一两分钟。
如果您不能等待,则在后台线程中移动取消(与会话一起)并在主线程中请求新的Hibernate会话。在cancelQuery()
返回之前,您无法使用旧会话。