私はプレイフレームワークを使用している初心者で、コードがデータベースに格納されているアドレスを更新していない理由がわかりません。Play Framework 2.4.xコールバック関数で保存操作を実行
成功を示すログが表示されますが、データの変更は反映されていません。コードに何か問題があるか、コンテキストを渡す必要があるかどうかはわかりません。
このサンプルコードはデータベースに保存し、サードパーティとの通信に成功すると、いくつかのフィールドが非同期で更新されます。事前に
おかげ
public Result addUserAddress(final String userId) throws Exception {
Address newAddress = AddressFrom.get();
Address ua = new Address(user,
ThirdPartyApplication.findThirdPartyApplicationById(1));
ua.save();
Promise<Optional<Person>> promise =
restClient.findPersonByEmail(user.getEmail());
promise.onRedeem(person -> {
if (person.isPresent()) {
restClient.addAddress(person.get().id, ua).onRedeem(address -> {
ua.thirdPartyAddressId = String.valueOf(address.id);
ua.thirdPartyUserId = String.valueOf(address.customerId);
ua.save();
Logger.info("Sync success.");
});
}
});
ObjectNode resultNode = Json.newObject();
resultNode.set("address", Json.toJson(ua));
return new Dummy(resultNode);
}