如果用户按下“搜索”按钮,然后他们决定做“其他事情”,我们必须取消已经运行的查询。
我们使用 Hibernate(和 Oracle)作为持久性解决方案。 Hibernates Session 接口(interface)提供了一个cancelQuery()
方法。经过一些测试,似乎 cancelQuery()
没有效果。
有没有人有这方面的经验Session#cancelQuery()
方法?
谢谢!
最佳答案
它有效果,但使用 Oracle JDBC 驱动程序,它需要一些时间才能发生。等一两分钟。
如果你等不及了,那么在后台线程(连同 session )中移动取消并在你的主线程中请求一个新的 Hibernate session 。在 cancelQuery()
之前,您不能使用旧 session 返回。
关于hibernate - 如何取消 hibernate 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888595/