Есть ли способ использовать RequestFactory для создания двух объектов в одном запросе? Я пробовал:GWT RequestFactory и несколько запросов
EmployeeRequest request = requestFactory.employeeRequest();
EmployeeProxy newEmployee = request.create(EmployeeProxy.class);
newEmployee.setName("Joe!");
Request<Void> createReq = request.persist().using(newEmployee);
createReq.fire();
EmployeeProxy newEmployee2 = request.create(EmployeeProxy.class);
newEmployee2.setName("Sam!");
Request<Void> createReq2 = request.persist().using(newEmployee2);
createReq2.fire();
Но я получаю сообщение о том, что запрос уже выполняется. Когда я сделал два отдельных запроса EmployeeRequests:
EmployeeRequest request = requestFactory.employeeRequest();
EmployeeProxy newEmployee = request.create(EmployeeProxy.class);
newEmployee.setName("Joe!");
Request<Void> createReq = request.persist().using(newEmployee);
createReq.fire();
EmployeeRequest request2 = requestFactory.employeeRequest();
EmployeeProxy newEmployee2 = request2.create(EmployeeProxy.class);
newEmployee2.setName("Sam!");
Request<Void> createReq2 = request2.persist().using(newEmployee2);
createReq2.fire();
Затем два разных запроса сделаны из браузера. Я надеюсь, что что-то в RequestFactory может объединить несколько запросов - мне нужно создавать сотни объектов одновременно, и я не хочу делать сотни запросов!
Ах, как странно. Очень странно. Означает ли это, что мне нужно создать какой-то механизм для планирования вызова fire() после того, как я сделаю все вызовы persist(), которые я хочу сделать? Я думаю, это было бы довольно просто сделать с отложенной командой, но ... вроде неловко! –
@Riley: Я бы обернул весь код, который создает запрос в методе или в его собственном объекте. Я бы использовал некоторую переменную (или поле), чтобы запомнить последний запрос. Затем, выполнив эту часть кода, я бы вызвал огонь по последнему запросу. (Я бы не использовал отложенную команду - это слишком шаткий, потому что нелегко убедиться, когда именно это будет выполнено.) –
Обновление: я делал глупую ошибку, и теперь ваш код отлично работает. Я подумаю о способах объединения запросов. Спасибо Крису! –