Il faut attraper les exceptions de type EJBException
et récupérer la cause. Si elle est de type OptimisticLockException
, afficher un message d'erreur. Arrangez-vous pour que ce message soit bien affiché à l'utilisateur.
Il ne faut pas attraper l'exception dans l'EJB qui ne connait pas le contexte. Il faut l'attraper dans le backing bean.
Pour faciliter la vie de l'utilisateur on pourrait aussi lui proposer de recharger le compte (faire un refresh pour reprendre le traitement avec les valeurs actuelles) ou bien de réafficher la liste de tous les comptes, ou bien même lui proposer d'enregistrer son opération (il faudra avant recharger la nouvelle version du compte). Vous pouvez coder votre propre solution ; elle dépend du contexte et des règles de gestion de l'entreprise.