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 :

BatchUpdateException: Column 'IdT1' cannot be null


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut BatchUpdateException: Column 'IdT1' cannot be null
    Bonjour j'utilise Hibernate et java pour inserer des objet dans une base mysql:

    J'ai deux tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    T1 : 
    (id ,nom)
     
    T2 :
    (
    id
    titre 
    IdT1  : clé etrnager sur T1).
    J'ai insere un objet OBJ1 dans T1 avec un id =1



    J'utilise un forumlaire ou je saisie un objet OBJ2 : titre et je recupere idT par code .

    je veux persister cet OBJ2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    ....
    OBJ2= new OBJ2();
    OBJ2.setIdT1(id);                             (id = 1)
     
    OBJ2.setTitre("blalala"; 
     
    session.save(OBJ2);
    tx.commit()
    ...
    j'ai cet erreur sur la quelle je seche depuis hier :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    StandardWrapperValve[action]: "Servlet.service()" pour la servlet action a généré une exception
    org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
    .....
     
     
    Caused by: java.sql.BatchUpdateException: Column 'IdT1' cannot be null
    	at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:665)
    	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
    	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
    Avez vous une idée ?

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Fais voir tes fichiers de mappings ainsi que le code de tes objets OBJ1 et OBJ2

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par willoi
    Fais voir tes fichiers de mappings ainsi que le code de tes objets OBJ1 et OBJ2

    alors voila :

    OBJ1
    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
     
     
    <hibernate-mapping>
        <class name="com.prj.OBJ1" table="T1" catalog="prj">
     
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="increment" />
            </id>
            <property name="nom" type="java.lang.String">
                <column name="nom" length="20" not-null="true" />
            </property>
     
     
     
            <set name="T2s" inverse="false">
                <key>
                    <column name="idT1" not-null="true" />
                </key>
                <one-to-many class="com.prj.OBJ2" />
            </set>
        </class>
    </hibernate-mapping>

    et OBJ 2 :

    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
     
    <hibernate-mapping>
        <class name="com.prj.OBJ2" table="T2" catalog="prj">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="increment" />
            </id>
     
        <many-to-one name="t1" class="com.prj.OBJ1" fetch="select">
                <column name="idT1" not-null="true" />
            </many-to-one>
     
            <property name="titre" type="java.lang.String">
                <column name="titre" length="20" not-null="true" />
            </property>
     
    </hibernate-mapping>

    et j'ai aussi mes OBJ avec des setter et getters


    voila merci pour ton interet

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Dans ton log, on peut voir la requete sql generee? voire le hql ?

    Tu est sur que ton id existe dans ta table T1?

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par willoi
    Dans ton log, on peut voir la requete sql generee? voire le hql ?

    Tu est sur que ton id existe dans ta table T1?

    c'est bon je l'ai resolu.

    merci

  6. #6
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Dire comment c'est bien pour les gens qui vont rechercher le même genre de choses ...
    Et le tag , c'est bien aussi

Discussions similaires

  1. Integrity constraint violation: 1048 Column 'abc' cannot be null
    Par Elwood J. Blues dans le forum Doctrine2
    Réponses: 6
    Dernier message: 13/06/2015, 16h43
  2. Réponses: 2
    Dernier message: 16/03/2013, 18h06
  3. Réponses: 2
    Dernier message: 14/08/2011, 14h25
  4. Réponses: 2
    Dernier message: 24/06/2008, 16h30
  5. Column 'col' cannot be null
    Par jeyce dans le forum Hibernate
    Réponses: 2
    Dernier message: 02/08/2007, 17h27

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