¿Hay alguna manera de usar RequestFactory para crear dos entidades en una única solicitud? Intenté:GWT RequestFactory y solicitudes múltiples
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 que una solicitud ya está en progreso. Cuando hice dos EmployeeRequests por separado:
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!
Oh, lo extraño. Muy raro. ¿Significa esto que tengo que crear algún mecanismo para programar una llamada a fire() después de haber realizado todas las llamadas persist() que quiero hacer? Supongo que sería muy fácil hacerlo con un comando diferido, pero ... ¡algo incómodo! –
@Riley: Me gustaría envolver todo el código que crea la solicitud en un método o en su propio objeto. Usaría alguna variable (o campo) para recordar la última solicitud. Luego, después de ejecutar esta parte del código, llamaría a fuego en la última solicitud. (No utilizaría un comando diferido; es demasiado inestable, porque no es fácil asegurarse de cuándo se ejecutará exactamente). –
Actualización: estaba cometiendo un error y ahora su código funciona muy bien. Pensaré en formas de agregar solicitudes. Gracias Chris! –