Je rencontre un problème étrange en utilisant l'implémentation Toplink de JPA. J'écris une application autonome pour gérer les prêts.Java JPA OneToMany - Relation "plusieurs" non rafraîchissante
Je définis une classe LOAN qui a une relation OneToMany (bidirectionnelle) avec une classe NOTICE. J'ai créé une interface graphique pour afficher tous les avis pour un prêt particulier. Dans une autre partie de mon programme, je peux envoyer des avis en retard qui sont enregistrés comme un AVIS. Toutefois, lorsque j'essaie d'afficher tous les avis pour un prêt, l'avis tardif n'apparaît PAS. J'ai vérifié la base de données et une entrée a été enregistrée mais pour une raison quelconque, l'avis n'est pas retiré.
Ce n'est que lorsque je redémarre mon application que l'avis apparaît. Parce que j'ai défini une relation OneToMany, je ne fais pas moi-même une requête "directe" dans la base de données. Je laisse JPA gérer la récupération de tous les avis pour moi. En tant que correctif, j'ai créé une requête pour obtenir simplement tous les avis pour un prêt particulier. Cela marche. Cependant, je pensais en définissant la relation OneToMany entre les deux classes, cela devrait être géré pour moi. Il semble que quelque chose n'est pas rafraîchi correctement ... comme si une liste "plus ancienne" d'avis était utilisée au lieu de rafraîchir de la base de données?
Pouvez-vous montrer votre prêt et sa cartographie @OneToMany et le code que vous essayez d'enregistrer? –
Heureuse ma réponse a été en mesure de vous aider, j'ai rencontré un problème similaire à quelques reprises avec travailler avec différents ORM. Cela peut prêter à confusion, car les ORM prennent en charge un si grand nombre de parties du cycle de vie d'un objet qu'il est difficile de dire quand un petit code supplémentaire sera nécessaire. –