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 :

[Débutant] Problème de clé composite


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 72
    Points : 53
    Points
    53
    Par défaut [Débutant] Problème de clé composite
    Bonjour à tous,

    je travaille sur une application d'import / export de données depuis/vers des fichier XML.

    Nous utilisons hibernate pour les connexion en base, et les librairies de dom4j pour faire les import depuis les XML.

    Dans mon mapping, j'ai des clés composites et ce sont ces clés qui me pose problèmes:

    voici mon mapping:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    <class name="toto.mapping.Gazette" table="GAZETTE" schema="SCHEMA" entity-name="GAZETTE">
    <composite-id name="id" class="toto.mapping.GazetteId">
    <key-property name="nogazette" type="java.lang.Short" node="NOGAZETTE">
    <column name="NOGAZETTE"/>
    </key-property>
    <key-property name="yygazette" type="java.lang.Short" node="YYGAZETTE">
    <column name="YYGAZETTE"/>
    </key-property>
    </composite-id>
    <property name="dtpubli" type="java.util.Date" node="DTPUBLI">
    <column name="DTPUBLI" length="10"/>
    </property>
    <property name="stgazette" type="java.lang.Short" node="STGAZETTE">
    <column name="STGAZETTE" not-null="true"/>
    </property>
    </class>
    </hibernate-mapping>

    voici un exemple de XML en entrée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <GAZETTE>
        <NOGAZETTE>1</NOGAZETTE>
        <YYGAZETTE>2006</YYGAZETTE>
        <DTPUBLI>2000-01-03</DTPUBLI>
        <STGAZETTE>1</STGAZETTE>
    </GAZETTE>

    et voici l'erreur que j'ai:
    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
     
    org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): GAZETTE
    	at org.hibernate.id.Assigned.generate(Assigned.java:33)
    	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
    	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
    	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
    	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
    	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
    	at org.epoline.soprano.datamig.operation.dataimporter.DataImporter$InsertDataElementHandler.onEnd(DataImporter.java:682)
    	at org.dom4j.io.DispatchHandler.onEnd(DispatchHandler.java:202)
    	at org.dom4j.io.SAXContentHandler.endElement(SAXContentHandler.java:268)
    	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
    	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    	at toto.DataImporter.importOneFile(DataImporter.java:376)
    	at toto.DataImporter.execute(DataImporter.java:310)
    	at toto.executeOperations(DataMig.java:171)
    	at toto.main(toto.java:125)
    et le code provoquant l'erreur:
    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
     
    Transaction tx = null;
    		tx = session.beginTransaction();
    		reader.resetHandlers();
    		reader.addHandler("/dataset/" + currentTableName, new InsertDataElementHandler(currentTableName, session));
    		try {
    			reader.read(new InputSource(input_path));
     
    		} catch (DocumentException e) {
    			logTableCounters(session);
    			log.error(e.getMessage(), e);
    		} catch (Exception e) {
    			logTableCounters(session);
    			log.error(e.getMessage(), e);
    		}
    Si quelqu'un a une piste...

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 72
    Points : 53
    Points
    53
    Par défaut pb résolu
    le problème est résolu, j'ai supprimé les attributs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="id" class="toto.mapping.GazetteId"

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

Discussions similaires

  1. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  2. Réponses: 2
    Dernier message: 28/04/2004, 11h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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