0

我想从 GWT 客户端触发 HQL 查询。但是由于它是异步的,如果我想触发一系列查询,我该怎么做?

所有数据都异步传输到客户端并使用。但是,如果我想按顺序触发查询,我该怎么做?

主要是这些HQL结果的处理顺序不应该改变。

如果您有任何疑问,请告诉我。提前致谢。

4

3 回答 3

1

GWT 客户端将按照您在客户端文件中定义的顺序触发您的查询,即

yourClient.java

Query q1; //execute method  first request
Query q2; // execute method second request

查询将按顺序运行,首先是 q1,然后是 q2,但 q2 不会等待 q1 的完成。一旦请求发送,您就无法确定您将获得响应的顺序,可能 q2 可能会在 q1 正在进行时首先执行并返回响应。

大多数从客户端制作序列的操作有点昂贵。即您可以使用 AsyncCallback 的成功方法的查询。当 q1 的响应到来时,将执行 q2,但如果您有多个查询,那么它是一个昂贵的解决方案。

所以最好的事情是让服务方法在服务器端执行所有查询并返回结果映射,然后以您想要显示数据的任何顺序将其填充到客户端。

于 2012-04-19T05:54:26.187 回答
0

GWT 是异步的,因此您必须基于 request->callback 构建所有内容

在这样的情况下,您可以做两件事:

  • 只有一个 RPC 服务收集所有查询的结果并返回它们。请记住,这些服务是普通的 java servlet
  • 有许多 RPC 服务,每个服务执行一个查询。对第一个查询进行查询,在回调中您可以显示(或收集)任何结果并调用第二个查询,并在其回调中执行相同的过程......等等。
于 2012-04-19T06:44:10.653 回答
0

将 Hibernate 与 GWT 一起使用并不像您想象的那么简单。Google 有一个很好的使用 Hibernate 的文档。您是否已经阅读过该文档?

我可以推荐使用吉利德。我不确定这是否能解决您的问题,因为我不确定您的问题是什么。

于 2012-04-19T06:31:51.160 回答