Bonjour,
J'utilise une simple application de CRUD JSF (JSF pages from entities) avec comme serveur GlassFish3 et avec le Framework JavaServer Faces.
Supposons que je dispose de deux tables, T1 et T2.
Dans le forumulaire Create de T1, lorsque j'appuie sur le lien d'envoie, la méthode déclenchée de T1Controller.java est :
Mais dans me cas, je veux effectuer une requete sur la deuxième table T2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public String create() { try { getFacade().create(current); JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("T1Created")); return prepareCreate(); } catch (Exception e) { JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured")); return null; } }
A cette méthode create(), j'ai ajouté le code suivant :
Ce code effectue la requete de MAJ sur la table mysql T2, mais lorsque je consulte la page View de T2, seule les valeurs initiales sont affichées. Il faut redéployer le projet pour avoir les valeurs exactes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 UserTransaction tx = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction"); try { tx.begin(); EntityManagerFactory emf = Persistence.createEntityManagerFactory("com.project"); EntityManager em = emf.createEntityManager(); em.merge(t2); tx.commit(); } catch (RuntimeException e) { tx.rollback(); }
Je crois qu'ils s'agit d'un problème de Session.
NB : T1Controller.java a l'annotation @SessionScoped
Merci
Partager