Nous avons trois couches dans notre application. Couche de service pour fournir une API externe. Couche BO pour notre logique métier et une couche DAO pour notre connexion à la base de données.
Disons que chaque fois que nous mettons à jour un fichier, nous voulons également changer quelque chose dans le dossier, par exemple «date de dernière modification». Cela doit être fait dans une transaction. Soit il réussit et le fichier et le dossier sont modifiés. Ou il y a un échec et la transaction est annulée afin que les deux objets soient dans l'état précédent.
L'action "Modifier un dossier lorsqu'un fichier est modifié" est une logique purement commerciale. Cela signifierait donc qu'il appartient à la couche BO. Cependant, nous utilisons Objectify pour notre base de données, donc pour démarrer une transaction, nous devons appeler ofy (). Transact (...). Si nous appelons cette fonction dans la couche BO, cela brise notre conception car il y aura des appels spécifiques à la base de données (Objectify) dans notre couche Business.
Quelle serait une solution propre à ce problème?
FileBO
appeler enFolderBO.edit(newDate)
raison du problème de transaction?