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

Hibernate Java Discussion :

[Hibernate] Exception Serializable sur propriété non mappé


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut [Hibernate] Exception Serializable sur propriété non mappé
    Re-bonjour, je sais je n'est que des exception, mais je suis débutante, et il ma manque quelques base je pense...

    voila je cherche a sauvegarder dans une base de données des classes, je ne veux pas sauvegarder toutes leurs propriété mais seulement certaines, donc c'est justement celle ci que j'ai définit dans le fichier de mapping hbm.xml.

    Malheureusement, , lors de la sauvegarde de ces objets, j'ai des erreurs de sérialisation, sauf qu'il me précise qu'un objet n'est pas serialisable alors que cette objet ne fait pas parti de mon mapping, et la je ne comprends pas ce que celuici vient faire là.
    Voici par exemple une exception :

    org.hibernate.type.SerializationException: could not serialize
    at org.hibernate.util.SerializationHelper.serialize(SerializationHelper.java:152)
    at org.hibernate.util.SerializationHelper.serialize(SerializationHelper.java:172)
    at org.hibernate.type.SerializableType.toBytes(SerializableType.java:74)
    at org.hibernate.type.SerializableType.deepCopyNotNull(SerializableType.java:70)
    at org.hibernate.type.MutableType.deepCopy(MutableType.java:25)
    at org.hibernate.type.MutableType.replace(MutableType.java:36)
    at org.hibernate.type.MapType.replaceElements(MapType.java:71)
    at org.hibernate.type.CollectionType.replace(CollectionType.java:420)
    at org.hibernate.type.TypeFactory.replace(TypeFactory.java:385)
    at org.hibernate.event.def.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:239)
    at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:150)
    at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:104)
    at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:544)
    at org.hibernate.engine.Cascades$6.cascade(Cascades.java:176)
    at org.hibernate.engine.Cascades.cascadeAssociation(Cascades.java:771)
    at org.hibernate.engine.Cascades.cascade(Cascades.java:720)
    at org.hibernate.engine.Cascades.cascadeCollection(Cascades.java:895)
    ....
    at org.hibernate.engine.Cascades.cascadeAssociation(Cascades.java:771)
    at org.hibernate.engine.Cascades.cascade(Cascades.java:720)
    at org.hibernate.engine.Cascades.cascadeCollection(Cascades.java:895)
    at org.hibernate.engine.Cascades.cascadeAssociation(Cascades.java:792)
    at org.hibernate.engine.Cascades.cascade(Cascades.java:847)
    at org.hibernate.event.def.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:264)
    at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:223)
    at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:54)
    at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:535)
    at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:539)
    at dsi.emc.pac7000.core.persistence.DatabaseManager.save(DatabaseManager.java:309)
    at dsi.emc.pac7000.ui.Pac7000UI.exportToBaseMenuSelected(Pac7000UI.java:364)
    ....
    Caused by: java.io.NotSerializableException: dsi.emc.pac7000.ui.view.adapter.RangeListAdapter$1
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at java.util.LinkedList.writeObject(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    ... at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.access$100(Unknown Source)
    at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
    at java.io.ObjectOutputStream.writeFields(Unknown Source)
    at java.awt.Container.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at org.hibernate.util.SerializationHelper.serialize(SerializationHelper.java:148)
    ... 86 more
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
    at java.awt.Container.layout(Unknown Source)
    at java.awt.Container.doLayout(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    ...


    la classe RangeListAdapte n'est pas censé etre sauvegarder en base, donc je ne comprends pas pourquoi j'ai une erreur dessus...
    si ce pb est deja arrivé à quelqu'un...
    MErci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    tu n'as pas défini de mapping pour la classe RangeListAdapter, mais est ce qu'une autre classe ne fait pas allusion à cette dernière ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    oui elle y fait allusion, mais je ne veux pas qu'elle soit mappé...

  4. #4
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    C'est pas la peine de faire des messages avec des up. Ca ne fera pas avancer ton affaire plus vite.

    Bon bref il faut declarer ton membre transient .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    transient private Thread animator;
    pour dire au mécanisme de sérialisation de ne pas le sauver

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    pour les up , c'est pour que le message ne soit pas oublier


    merci, j'avais deja essayer, mais enfait, je ne comprend pas car car l'exception survient seuelement a un instant donné.
    c'est à dire que si je ne fais pas une action déterminé, la sauvegarde se passe s'en encombre... donc pour l'instant je crois qu'il y a une autre erreurs que je dois régler et pour laqquelle vous ne pouvez pas m'aider, donc j'y retourne, mais cela me

    merci pour la reponse

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    ca y est j'ai réussi a isoler la ligne défectueuse qui fait tout planter !!!

    mais je ne comprends pas d'ou cela vient.

    il fo que je parle du contexte... donc ma fameux objet qui provoque l'exception sont des objets graphique affiché ou non a l'ecran, seulement je ne veux sauvegarder en base seuelement deux propriétés :
    le rectangle ou ils sont inséré, et la page(classe a moi) sur laquelle ils sont insérés.

    Donc si ces composants existe mais ne sont pas inséré dans un Container, il n'y a pas de probleme, ils sont bien sauvegarder dans le base de données.
    parcontre des que je les insere dans un JPAnel, ce qui ne change rien aux propriété sauvegarder dans la base, la j'ai les erreurs de serialization et mon composant clignote et occupe tout les processus, aucun autre repaint n'est effectuer.

    donc j'ai compris, le pb vient d'un listener, car une fois un des composant afficher il lance un listener, et là on a le pb de serialisation.
    j'ai donc mis en commentaire cette ligne et je n'ai plus l'erreur par contre, le composant clignote toujours.... et prend toutes les ressource...
    je ne comprends pas...

  7. #7
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Oula tu veux sérialiser un JPanel que tu es entrain d'afficher à l'ecran, c'est ca ?
    Mais tu es une brute

    Pourquoi une telle opération :

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    lol,
    non je ne veux pas le sérialiser lui, lol je veux juste sauvegarder son emplacement, mais tu as raison, je crois que le plus simple, c'est que si le user decide de sauvegarder, je désaffiche mes Jpanel, c'est plus simple et plus propre.... je teste de suite.... au moins j'evite de me prendre la tete avec des exceptions incroyables...
    lol
    je suii pas une brute.... je suis debutante en base de données et en java aussi, mais la vie a voulu que je fasse des choses don je n'avais aucune connaissance, donc pour moi en sauvegardant seulement un rectangle je ne vois pas ou cela va influencer mon affichage, mais bon... je vais eviter c'est tout...
    Merci pour la reponse

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    oui donc c'est bon... le probleme venait bien d'un thread et d'un listener, pour ne plus avoir l'erreur de serialization et que mes données soit bien sauvegarder dans la base, j'au du récuprérer mon composant graphique j'ai du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      public void stopThread() {
        if (thread != null) {
          thread.interrupt();
          System.out.println("stopThread, Interruption du Thread");
          thread = null;
          listener = null;
        }
      }
    et ensuite les désafficher.
    apres la sauvegarde si je veux réafficher mon composant, par contre il tremble toujours, mais je crois que cela n'est plus de votre ressort....

    est ce normal que je sois obligé de passé thread et listener à null ?
    pourquoi veut il les serialisé si moi je ne lui demande pas ?

  10. #10
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Est ce que tu serialises un des parents ? Si oui l'as tu déclaré transient ?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    je vous fais perdre votre temps, désolé, effectivement le transient arrange, j'avais seulement mis listener a transient et pas le thread.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2013, 11h39
  2. exception sur DISPLAY non positionné
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 0
    Dernier message: 08/10/2012, 11h25
  3. Réponses: 4
    Dernier message: 09/06/2010, 16h15
  4. ajout d'une propriété dans la table+ hibernate exception
    Par marwa_eniso dans le forum Hibernate
    Réponses: 1
    Dernier message: 05/05/2010, 19h21
  5. Réponses: 12
    Dernier message: 12/12/2004, 14h25

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