2012-04-19 3 views
0

Я хотел запустить запросы HQL от клиента GWT. Но поскольку это происходит асинхронно, если я хочу запустить последовательность запросов, как это сделать?Запросы спящего режима в GWT

Асинхронно все данные передаются клиенту и используются. Но если я хочу последовательно запускать запросы, как это сделать?

В основном, порядок обработки этих результатов HQL не должен изменяться.

Дайте мне знать, если у вас есть вопросы. Заранее спасибо.

ответ

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, но если у вас есть несколько запросов, то это дорогое решение.

Лучше всего, чтобы метод службы выполнял все ваши запросы на стороне сервера и возвращал карту результата, а затем заполнял ее на стороне клиента в любой последовательности, в которой вы хотите показать данные.

0

Использование Hibernate с GWT не так просто, как вы думаете. Google использует good documentation для использования Hibernate. Вы уже читали эту документацию?

Я могу порекомендовать использование Галаада. Я не уверен, что это решит вашу проблему, потому что я не совсем уверен в вашей проблеме.

0

GWT является асинхронным, так что вы должны все построить, основываясь на request-> Обратный вызов

Вы можете сделать две вещи, в таком случае, как это:

  • имеют только одну службу RPC, который собирает результаты для всех запросов и возвращает их. Помните, что сервисы - это простые сервлеты Java
  • Имейте много служб RPC, которые выполняют один запрос каждый. Сделайте запрос первым и в обратном вызове вы можете отображать (или собирать) любой результат и вызывать второй запрос и в его обратном вызове выполнять ту же процедуру ... и так далее.