Je suis un novice utilisant le framework de jeu et j'ai besoin d'aide car je ne trouve pas la raison pour laquelle le code ne met pas à jour l'adresse stockée dans la base de données.Play Framework 2.4.x exécuter une opération de sauvegarde dans une fonction de rappel
Je peux voir le journal indiquant le succès mais je ne vois pas le changement de données reflété; Je ne sais pas si c'est quelque chose qui ne va pas avec le code ou si je dois passer un contexte.
Cet exemple de code doit stocker dans la base de données, puis nous obtenons une communication réussie avec la mise à jour tiers certains champs de manière asynchrone.
Merci à l'avance
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);
}