我是一个使用play framework的新手,我需要一些帮助,因为我找不到代码没有更新存储在数据库中的地址的原因。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);
}