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 :

Problème Generator class


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut Problème Generator class
    Salut,

    Dans mon projet Java, j'utilise Hibernate.
    Je dois entrer dans une de mes tables un clé primaire qui est de type String.

    Première question:
    Est ce que je peux utiliser le generator class = 'assigned' pour entrer un String comme clé primaire?

    Si oui, j'ai un problème lorsque je veux sauver les nouvelles donées dans la base de données.
    Voici les exceptions que je reçois

    net.sf.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.minosis.hibernate.Virement
    at net.sf.hibernate.id.Assigned.generate(Assigned.java:26)
    at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:765)
    at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:738)
    at org.sambreville.pos.tools.Request.add_virement(Request.java:645)
    at org.sambreville.pos.tools.Money.actionPerformed(Money.java:126)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Voici mon code :

    Virement virement = new Virement();
    Transaction tx=null;
    try {
    tx = (Transaction) session.beginTransaction();
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    virement.setIdVente(numTic);
    virement.setCommunication(num_commu);
    virement.setCompte("eeee");

    try {
    session.save(virement);
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    tx.commit();
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Je vous demande de l'aide car je ne vois pas trop où est l'erreur.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Personne n'a une idée?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Toujours personne....arf

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    Hello,

    La balise code est parfois plus adaptée pour le code que la balise citation .

    Je crois que ton fichier hbm pourrait nous aider à y voir plus clair.

    La, tout ce que je peux y voir:
    c'est soit que la pk n'est pas idVente, soit que numTic est null.


    Bonne chance

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Citation Envoyé par yannick1717 Voir le message
    Hello,

    La balise code est parfois plus adaptée pour le code que la balise citation .
    Oui, désolé, jm'en suis rendu compte apres

    Citation Envoyé par yannick1717 Voir le message
    La, tout ce que je peux y voir:
    c'est soit que la pk n'est pas idVente, soit que numTic est null.
    idVente est bien la pk et j'ai bien vérifié que numTic n'est pas null.

    Voici le .hbm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="com.minosis.hibernate">
    	<class name="Virement" table="virement">
    		<id
    			column="idVente"
    			name="IdVente"
    			type="string"
    		>
    			<generator class="assigned" />
    		</id>
    		<property
    			column="communication"
    			length="225"
    			name="Communication"
    			not-null="true"
    			type="string"
    		 />
    		<property
    			column="compte"
    			length="50"
    			name="Compte"
    			not-null="true"
    			type="string"
    		 />
    	</class>
    </hibernate-mapping>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    Désolé, mais alors je ne vois pas.

    La seule chose que je crois, c'est peut-etre remplacer string par java.lang.String.
    Mis à part ça, je ne vois pas ce que ça peut-être

    (une autre suggestion est que dans ton hibernate.cfg.xml tu importes un autre fichier de mapping par mégarde) oui c'est très con mais ça peut arriver.

    Encore une fois, bonne chance !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Merci bien pour ta réponse, mais la solution n'est pas là....
    Je vais continuer à chercher mais ca fait deja un petit temps que je cherche la solution...

    Merci encore d'avoir répondu

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Personne d'autre n' a une idée? Car je n'ai toujours pas trouvé la solution à mon problème.
    J'ai essayé en retirant le generator class mais ca ne fonctionne pas non plus.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Un dernier up car je dois avoir fini aujourdhui...

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par schwuleur Voir le message
    Un dernier up car je dois avoir fini aujourdhui...
    vous avez bien implémenté le getter de la clé primaire ?

    (au passage net.sf.hibernate… : ce n'est pas la dernière version d'Hibernate… vous devriez avoir org.hibernate. … )

    et regardez dans les sources d'Hibernate ce qu'il fait exactement à la ligne
    net.sf.hibernate.id.Assigned.generate(Assigned.java:26)
    et ce qui peut poser problème…

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Voila mon getters et mon setters.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public java.lang.String getIdVente () {
    		return _idVente;
    	}
     
    	/**
             * Set the unique identifier of this class
             * @param _idVente the new ID
             */
    	public void setIdVente (java.lang.String _idVente) {
    		this._idVente = _idVente;
    		//this.hashCode = Integer.MIN_VALUE;
    	}
    Pour la deuxieme remarque, je sais que je dois passer à Hibernate 3 mais j espérais que ca fonctionnerais avec Hibernate 2 avant de passer à Hibernate 3.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Merci pour ta réponse, j'ai trouvé mon problème, il était bien dans mes getters et setters.

    J'avais rajouté un setters où je ne rentrais rien... je suppose qu'il a pris celui là en considération et non celui que je supposais ...et qu'il devait prendre!

    Merci pour ta remarque et je note...Résolu

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

Discussions similaires

  1. Problème de classe.
    Par maminova77 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 21h39
  2. Problème sur classe Transformer avec les <!--
    Par tykool dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 10h20
  3. Problème de classe
    Par DeusXL dans le forum DirectX
    Réponses: 15
    Dernier message: 04/12/2005, 14h37
  4. Problème de classe
    Par tidou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/10/2005, 17h49
  5. [FLASH MX2004] Problème de classe
    Par JulPoWeR dans le forum Flash
    Réponses: 1
    Dernier message: 10/07/2005, 22h51

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