我有一个使用SmartGWT,Jaxrs,ejb &jpa
的应用程序。
- 我有一个方案,用户想要通过输入FirstName,LastName或Middlebane,SSN,电子邮件等来提取数据(称为搜索屏幕(
- 数据库包含数百万人中的大量记录,这需要大量时间来回复。
- 例如,使用FirstName的用户搜索需要大量时间来响应,在这种情况下,用户需要
cancel/terminate/abort
请求。 - 在SmartGWT或Jaxrs(Web API(中是否可能终止请求。因此,用户可以终止请求并进一步移动
ps ::我尝试了很多选项,但是我没有得到适当的解决方案。
一种解决方案是将业务逻辑放入状态bean中,然后将bean放入HTTP会话中...现在您可以访问当前使用的持久性上下文和开放交易,以便您可以致电Session.cancelQuery()
....但是此方法有一定的限制。仅在尚未返回结果集时才有效,如果此限制会损害您,请检查此答案
还有其他解决方法可以将Web客户端与业务方法同步,但这是我最喜欢的
您还需要考虑的另一件事,因为这是您的用例是引入一个新的词汇搜索引擎,例如Solr或Elasticsearch,可以通过数据库中的数据经常更新...它非常适合词汇搜索,可提供能够遇到错字错误和返回结果的能力很快