Problème avec JSF et SessionBean
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 :
Code:
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;
}
} |
Mais dans me cas, je veux effectuer une requete sur la deuxième table T2.
A cette méthode create(), j'ai ajouté le code suivant :
Code:
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();
} |
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.
Je crois qu'ils s'agit d'un problème de Session.
NB : T1Controller.java a l'annotation @SessionScoped
Merci