IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

@Postload et @EntityListeners


Sujet :

JPA Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 67
    Points : 48
    Points
    48
    Par défaut @Postload et @EntityListeners
    bonjour,

    suite au message http://www.developpez.net/forums/d93...ne-fonctionne/, j'ai donc un @EntityListeners a la place d'un @postload. (car ce dernier n'est jamais appelé pour une raison que j'ignore encore).


    Surprise, @EntityListeners ne fonctionne pas tout le temps, sans aucune raison particuliere. Quand cela arrive, il suffit de redemarrer le serveur.
    Mais evidement, ce n'est pas exploitable en production
    Apres moult recherche sur ces problemes, je n'ai aucune explication.
    Est ce lié a eclipselink, a la jvm (package javax.persistence), .....
    Bref, ca commence a faire beaucoup, d'autant plus que j'ai deja fait des mises à jour de eclipselink (derniere version 2.1.2)

    Si quelqu'un pouvait avoir ne serait ce que le début d'une idée ?

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 67
    Points : 48
    Points
    48
    Par défaut
    Âpres investigation , il apparait que eclipseLink ne gère pas bien l'appelle au postBuild du listener lorsque le expiry du cache prend effet.


    Pour rappel, voici l'objet concerné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Entity
    @Table(catalog = "sdcarbrp", schema = "dbo", name = "v_car_list_location")
    @EntityListeners( { LocationListener.class })
    @Cache(type = CacheType.FULL, expiry = 3600000, shared = true)
    public class Location implements Serializable, Comparable<Location> {
    ...
    et voici le listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class LocationListener implements DescriptorEventListener {
    	public void postBuild(DescriptorEvent arg0) {
    		Location l = (Location) arg0.getSource();
    		try {
    			Tools.convertLocation(l);
    		} catch (Exception e) {
    			l.setName("Error " + e.getMessage());
    		}
    	}
    ......

    Lorsque le cache expire , le postBuild du EntityListeners n'est plus appelé.
    En désactivant le @cache, le postBuild est appelé correctement.
    Je pense que c'est un bug eclipseLink.

    Par contre pourquoi le postlLoad n'est jamais appelé , toujours aucune réponse.

Discussions similaires

  1. [2.x] Listener postLoad
    Par bilbi dans le forum Symfony
    Réponses: 3
    Dernier message: 14/06/2012, 10h57
  2. [2.x] postLoad dans entity
    Par jherbaux dans le forum Symfony
    Réponses: 2
    Dernier message: 20/07/2011, 09h09
  3. Réponses: 0
    Dernier message: 21/03/2011, 13h22
  4. postLoad ne fonctionne pas
    Par jmturc dans le forum JPA
    Réponses: 6
    Dernier message: 12/06/2010, 13h13
  5. existe-t-il un évènement postload?
    Par phfle1 dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/06/2008, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo