Bonjour,
J'ai un tableau qui affiche des éléments. Je peux supprimer / modifier ces éléments. J'utilise le Framework JPA pour la persistance.
Lorsque je veux modifier un élément, j'initialise certains champs dans une méthode @PostConstruct, en l'occurrence :
Le problème est que si un autre utilisateur supprime l'élément que je veux modifier entre le moment ou j'affiche le tableau et le moment ou je clique pour modifier, j'aurai une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 @PostConstruct public void init() { FacesContext context = FacesContext.getCurrentInstance(); ExternalContext externalContext = context.getExternalContext(); Map<String, String> params = externalContext.getRequestParameterMap(); String idIdentite = params.get("idIdentite"); if (idIdentite != null) { currentIdentite = m_identiteService.getIdentite(Integer .valueOf(idIdentite)); // Test au cas ou un autre utilisateur aurait supprimé entre temps l'identité if (currentIdentite == null) { // TODO } } else { currentIdentite = new Identite(); currentIdentite.setTypeIdentiteCi(TypeIdentiteCi.PHYSIQUE); } Adresse adresseIdentite = null; if (currentIdentite.getId() > 0) { adresseIdentite = currentIdentite.getAdressePrincipale(); canton = adresseIdentite.getLocalite() != null ? adresseIdentite .getLocalite().getCanton() : m_adresseService .getCanton("1"); } else { adresseIdentite = new Adresse(); adresseIdentite.setTypeAdresse(TypeAdresseCi.PRINCIPALE); adresseIdentite.setPays(m_adresseService.getPays("CH")); canton = m_adresseService.getCanton("1"); currentIdentite.addAdresse(adresseIdentite); } }
J'ai ajouté un test dans la méthode mais je ne sais pas si c'est le bon endroit pour ça et surtout qu'est-ce que je dois faire si le test est positif.
J'aimerais rester sur la même page et avoir un message qui indique que l'élément ne se trouve plus en base de données.
Une idée de comment faire ?
Merci d'avance pour votre aide
Partager