gwt requestfactory

GWT RequestFactory y solicitudes mĂșltiples



(1)

¿Hay alguna manera de utilizar RequestFactory para crear dos entidades en una única solicitud? Lo intenté:

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();

Pero me sale un error de que una solicitud ya está en progreso. Cuando hice dos Solicitudes de Empleados separadas:

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();

Luego, se realizan dos solicitudes por separado desde el navegador. Espero que algo en RequestFactory pueda combinar varias solicitudes. Tengo que crear cientos de entidades a la vez, ¡y no quiero hacer cientos de solicitudes!


Si es posible. En tu primer ejemplo, simplemente elimina la línea

createReq.fire();

Cuando se llama a createReq2.fire() al final, entonces GWT envía tanto newEmployee como newEmployee2 en una única solicitud (porque ambos se conservaron en el contexto de su EmployeeRequest " request "). Personalmente creo que la semántica es un poco extraña, pero esa es solo mi opinión.

Addendum por Riley: La siguiente sintaxis es equivalente y es mucho más intuitiva:

EmployeeRequest request = requestFactory.employeeRequest(); EmployeeProxy newEmployee = request.create(EmployeeProxy.class); newEmployee.setName("Joe!"); request.persist().using(newEmployee); EmployeeProxy newEmployee2 = request.create(EmployeeProxy.class); newEmployee2.setName("Sam!"); request.persist().using(newEmployee2); request.fire();