RequestFactoryを使用して1つのリクエストで2つのエンティティを作成する方法はありますか?私は試しました: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();
しかし、リクエストが既に進行中であるというエラーが表示されます。私は2つの別々の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();
を次に、2つの別々の要求は、ブラウザから作られています。私はRequestFactoryの何かが複数のリクエストをマージできることを望んでいます - 一度に何百ものエンティティを作成しなければならず、何百ものリクエストをしたくありません!
ああ、どのように奇妙な。本当に変だ。これは、私が作成したいpersist()呼び出しをすべて行った後にfire()呼び出しをスケジュールするためのメカニズムを作成する必要があることを意味しますか?遅れたコマンドでやるのはかなりシンプルだろうと思うけど、厄介なのだ! –
@Riley:メソッドまたは独自のオブジェクトでリクエストを構築するすべてのコードをラップします。私はいくつかの変数(またはフィールド)を使って最新の要求を覚えています。その後、コードのこの部分を実行した後、私は最新の要求に火をつけるでしょう。 (私は遅延コマンドを使用しません - それはあまりにも不安定ですので、確かに実行することは確実ではありません) –
更新:私は愚かな間違いを犯していました。私は要求を集約する方法について考えます。クリスおかげで! –