【发布时间】:2016-03-09 17:23:05
【问题描述】:
我有一个使用 Hibernate 提供的 JPA 和一个 HSQL 数据库的 Java SE 应用程序。应用程序使用 EntityManager 查询数据库以获取信息,以便在屏幕上绘制图表。在执行查询时,图表区域有一个典型的旋转图标,让用户知道它正在工作。有些查询需要很长时间,我希望有中止/取消查询的功能。我知道我可以打开 EntityManager 并获取 Hibernate Session 并调用 cancelQuery(),但这并没有做任何事情,因为 HSQLDB 驱动程序不支持 Statement 接口 (http://hsqldb.org/doc/2.0/apidocs/org/hsqldb/jdbc/JDBCStatement.html#cancel()) 上的 cancel() 方法。是否有其他方法可以通过 API 或重新设计我的应用程序?无法取消正在运行的查询很麻烦。
【问题讨论】:
-
可能简单地中断线程就可以了。虽然不知道它在 HSQLDB 中是如何处理的,但值得一试,因为它实现起来非常简单