Tenemos tres capas en nuestra aplicación. Capa de servicio para proporcionar una API externa. Capa BO para nuestra lógica de negocios, y una capa DAO para nuestra conexión de base de datos.
Digamos que cada vez que actualizamos un archivo, también queremos cambiar algo en la carpeta, por ejemplo, 'última fecha de modificación'. Esto debe hacerse en una transacción. O tiene éxito y se editan tanto el Archivo como la Carpeta. O hay un error y la transacción se revierte, por lo que ambos objetos están en el estado anterior.
La acción "Editar una carpeta cuando se edita un archivo" es puramente lógica de negocios. Entonces esto significaría que pertenece a la capa BO. Sin embargo, utilizamos Objectify para nuestra base de datos, por lo que para iniciar una transacción necesitamos llamar a ofy (). Transact (...). Si llamamos a esta función en la capa BO, esto rompe nuestro diseño, ya que habrá llamadas específicas de la base de datos (Objectify) en nuestra capa Business.
¿Cuál sería una solución limpia para este problema?
FileBO
llamarFolderBO.edit(newDate)
por el problema de la transacción?