Bonjour !
J'ai des entités liées entre elles par un lien @OneToMany.
Mon problème est visible lorsque j'ajoute ou je supprime un entité enfant où les changements sont effectués en base de données mais pas dans mes pages même après rechargement, changement de page, ou déconnexion de session !!!
Il faut que je ferme complètement ma fenêtre pour que je puisse visualiser les changement de la base de données comme si tout était gardé en "cache" !
Un exemple pour illustrer tout cela.
Entité "parent" GrilleLigne et ses "enfants" GrilleCellule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @Entity public class GrilleLigne implements Serializable { @OneToMany(cascade = CascadeType.ALL, mappedBy = "grilleLigne") private List<GrilleCellule> grilleCelluleList; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Entity public class GrilleCellule implements Serializable { @JoinColumn(name = "gtsgttid", referencedColumnName = "gttid", nullable = false) @ManyToOne(optional = false) private GrilleLigne grilleLigne; }
Je suis dans une page JSF, et j'affiche mes GrilleCellules liées à mes GrilleLignes.
Je supprime un objet GrilleCellule :
- la suppression se fait dans la base de données
- la page se recharge ENTIEREMENT, mais l'objet que je viens de supprimer est toujours là !
- je navigue sur une autre page pour être certain qu'il n'y a plus de liens avec mes objets ; et je retourne sur ma page qui me recharge TOUJOURS tous les objets depuis la base de données même celui supprimé !
Je rappelle que je ne garde aucune variable de session... je recharge TOUT !
Pour m'en convaincre, je me déconnecte de ma session par mon bouton JSF tel que :
et me reconnecte... Mon objet supprimé est toujours là !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 HttpSession session = (HttpSession) getExternalContext().getSession(false); session.invalidate();
Cette fois je ferme la page internet, je la ré-ouvre, me reconnecte...
et là je n'ai plus mon objet supprimé !
Même problème avec l'ajout !
Petite précision : je suis sous NetBeans 6.9.1 + Glassfish 3.0.1 + JPA TopLink
Partager