0


0

problème de re-rendu à l’aide de l’annotation @Formula dans l’entité lors de l’utilisation dans le composant jsf / richfaces

Je rencontre un problème avec le rendu à nouveau sur rich: scrollableDataTable, j’ai une fonction onrowclick qui envoie l’élément de ma liste pour être en mode édition.

Voici l exemple de code:


La valeur de ma table pointe vers la liste d’entités avec @SessionScope.

Le scénario est lorsque l’utilisateur clique sur le bouton Modifier, l’élément de cette ligne particulière sera en mode édition et le menu déroulant sera activé et l’utilisateur pourra sélectionner un réviseur pour ce dossier. Le mode d’édition de propriété est une propriété transitoire de l’entité de dossier. Jusqu’à présent, je peux rendre correctement le menu déroulant et enregistrer le réviseur sélectionné dans la base de données. Mais j’ai des problèmes avec cela revient à rendre le nom du critique. Dans certains cas, il ne rend pas le rendu après avoir cliqué sur le bouton Terminé, mais dans certains cas, cela fonctionne bien.

La propriété reviewName a utilisé @Formula pour obtenir le nom de la table différente.

Ma question est la suivante: la @Formula a-t-elle quelque chose à voir avec le retard du rendu ou la portée de l’entityList qui pose problème.

J’utilise seam.2.2 richfaces 3.x. et jsf2.0

Merci :)

1 Answer


0


Déjà résolu le problème.

J’essaie d’exécuter un test sur la liste des résultats qui sont renvoyés par ma liste d’entités en utilisant certains journaux. J’ai découvert que les propriétés de mon entité sont mises à jour sur la base de données et sur la liste. Mais la propriété qui utilise la formule n’est pas mise à jour. La méthode refresh () ne fonctionnera donc pas et ne relira pas la propriété annotée en utilisant` @ Formula`. Je pense donc que la requête sur ma @ Formula est mise en cache par hibernate et ne sera pas relue lors du deuxième accès à la liste de résultats de la liste d’entités.

Ma solution:

La solution que j’utilise est d’effacer le EntityManager en utilisant sa méthode` clear () `. Et la liste est mise à jour correctement et le rendu fonctionne parfaitement.

-à votre santé