有没有办法使用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中的某些东西可以合并多个请求--我必须一次创建数百个实体,而我不想发出数百个请求!
发布于 2011-02-11 03:09:10
是的,这是可能的。在第一个示例中,只需删除行
createReq.fire();当您在最后调用createReq2.fire()时,GWT在一个请求中同时发送newEmployee和newEmployee2 (因为它们都被持久化在EmployeeRequest“request”的上下文中)。我个人觉得语义有点奇怪,但这只是我的观点。
Riley提供的附录:下面的语法是等价的,而且更直观:
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();https://stackoverflow.com/questions/4961102
复制相似问题