2010-05-27 7 views
1

J'ai une webapp qui utilise spring + hibernate pour ma couche de données. J'utilise la mise en cache de second niveau avec ehcache en tant que fournisseur. Tout semble fonctionner jusqu'à présent, mais parfois nous rencontrons un problème que je ne peux pas vraiment comprendre ATM.Spring, Hibernate et Ehcache - Mauvaises entités

Une de mes tables est utilisée pour les étiquettes dans l'application - chaque utilisateur qui se connecte accède à cette table avec sa langue d'ensemble. Fonctionne pour 90% du temps. Mais parfois, l'utilisateur obtient des étiquettes pour la mauvaise langue, par ex. au lieu de l'allemand, tout devient italien. Après une déconnexion et une connexion toutes les étiquettes sont correctes.

Est-ce que quelqu'un d'entre vous a rencontré quelque chose comme ça? Je ne sais pas où regarder: spring + hibernate + ehcache est un paquet solide ou n'est-ce pas?

Vive

+0

J'ai fait quelques tests maintenant. Avec 7 utilisateurs connectés en 7 langues. Pas de problème. Juste une pensée: Sur le côté client il y a un proxy en cours d'utilisation. Est-ce que mon problème pourrait résulter d'ici? – onigunn

Répondre

1

Spring/Hibernate/ehcache est une pile solide, je suis 99% sûr que c'est un bug dans votre code.

Y a-t-il une chance que les étiquettes soient mises en cache de façon statique quelque part dans votre application?

Assurez-vous que égaux et hashcode sont proprerly mises en œuvre dans vos classes d'entités, vous pouvez trouver des idées sur la façon de le faire here

Essayez de débogage à distance votre serveur, points d'arrêt dans votre OTI pour vérifier que les données sont en fait récupéré.

+0

Eh bien, j'utilise la classe dao pour cette table comme haricot de printemps. Donc, toutes les listes et sélections, etc. sont générées à chaque requête. Peut-être une sorte de vieux jsps qui sont donnés ici? – onigunn

+0

Bon point. J'ai négligé ma classe d'entité, tous les autres ont des méthodes hashCodes et égales, celle-ci non. Je les ai mis en place maintenant. Peut-être que cela a fait l'affaire. – onigunn

+0

Ces méthodes sont critiques pour Hibernate, je suspecte que vous avez des collisions hashcode – Guillaume

Questions connexes