Question 1 : à quoi sert return "Edit"; ?

Ca sert à indiquer la prochaine page à afficher.

Question 2 : Lorsque l'utilisateur a modifié les données sur le département, comment les modifications sont-elles sauvegardées dans la base de données ?

La méthode update de DepartementController est appelée.

Elle récupère la façade (le bean session DepartementFacade) et appelle sa méthode edit en lui passant en paramètre le département courant (variable mise dans la méthode prepareEdit).

La méthode edit est définie dans la classe mère AbstractFacade. Elle fait un merge dans la base de données, ce qui rattache l'entité et sauvegarde les modifications lorsque le serveur d'application lance un commit à la fin de la méthode. En effet, la méthode n'étant pas annotée pour les transactions, elle a le comportement par défaut : une nouvelle transaction est démarrée au début de la méthode et un commit est lancé à la fin de la méthode (si tout s'est bien passé) ; voir cours sur les transactions dans les EJB