如何取消hibernate查询

ali*_*ice 7 hibernate

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

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

有没有人对这种Session#cancelQuery()方法有一些经验?

谢谢!

Aar*_*lla 7

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

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