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 :

requête hibernate sur table contenant des champs null ne fonctionne plus


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut requête hibernate sur table contenant des champs null ne fonctionne plus
    Salut,
    tout est dans le titre, j'ai une requête qui va chercher des infos dans la base, quand tous mes champs dans la base sont renseignés, je récupere bien ma liste d'objets, par contre si y a juste un champ null, je catch une belle erreur et bien sûr ma liste est vide!!!

    Comment geré ce probleme????

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Comment as tu defini ton mapping et ta table en bdd?

    Si tu defini not null dans hibernate et le contraire dans la bdd ca peur poser des problemes.

    A voir le code ...

  3. #3
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    salut mec, dans ma base j'ai défini a null tous les champs sauf la clé primaire(logique) et dans mon fichier xml de mapping j'ai défini le champs valdefaut:
    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
     
    <hibernate-mapping package="com.ares.arpmsi.serveur.modele.hibernate" >
     
        <!--mapping classe -->
         <class name="ParametrePopup" table="PARAMETRE">
    		<id name="codeparam"  column ="CODEPARAM">
    			<generator class="assigned">
    			</generator>
    		</id>
        <property name="libparam" column="LIBPARAM"/>
        <property name="ordre" column="ORDRE"/>
        <property name="taillemin" column="TAILLEMIN"/>
        <property name="taillemax" column="TAILLEMAX"/>
        <property name="valdefaut" column="VALDEFAUT" not-null="false"/>
        <property name="codetype" column="CODETYPE"/>
     
      </class>
     
        </hibernate-mapping>
    en rajoutant le not-null dans le champs ca marche toujours pas, mince alors!!

    Dans la doc hibernate ils disent
    not-null (optionnel): Génère le DDL d'une contrainte de non nullité pour les colonnes. à mon avis c'est pas ça qu'il faut rajouter, cette option ne fait que generer un DLL

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

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Tu pourrais au moins donner l'erreur ??

  5. #5
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    Null value was assigned to a property of primitive type( ca nous aide pas bcp) lol

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ce qui n'aide pas beaucoup, c'est d'avoir uniquement le mapping hibernate.
    Il faudrait voir :
    - le code du POJO associé
    - la structure de la base de données

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    voila le pojo

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    public class ParametrePopup 
    {
      private String codeparam;
      private String libparam;
      private String codetype;
      private int ordre;
      private int taillemin;
      private int taillemax;
      private int valdefaut;
     
      public ParametrePopup(){}
     
      public ParametrePopup(String codeparam, String libparam, int ordre, int taillemax,int taillemin, int valdefaut, String codetype)
      {
         this.codeparam=codeparam;
         this.libparam=libparam;
         this.ordre=ordre;
         this.taillemax=taillemax;
         this.taillemin=taillemin;
         this.valdefaut=valdefaut;
         this.codetype=codetype;
      }
     
     
      public void setCodeparam(String codeparam)
      {
        this.codeparam = codeparam;
      }
     
     
      public String getCodeparam()
      {
        return codeparam;
      }
     
     
      public void setLibparam(String libparam)
      {
        this.libparam = libparam;
      }
     
     
      public String getLibparam()
      {
        return libparam;
      }
     
     
      public void setOrdre(int ordre)
      {
        this.ordre = ordre;
      }
     
     
      public int getOrdre()
      {
        return ordre;
      }
     
     
      public void setTaillemin(int taillemin)
      {
        this.taillemin = taillemin;
      }
     
     
      public int getTaillemin()
      {
        return taillemin;
      }
     
     
      public void setTaillemax(int taillemax)
      {
        this.taillemax = taillemax;
      }
     
     
      public int getTaillemax()
      {
        return taillemax;
      }
     
     
      public void setValdefaut(int valdefaut)
      {
        this.valdefaut = valdefaut;
      }
     
     
      public int getValdefaut()
      {
        return valdefaut;
      }
     
     
      public void setCodetype(String codetype)
      {
        this.codetype = codetype;
      }
     
     
      public String getCodetype()
      {
        return codetype;
      }
     
    }
    et le fichier de création de la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    create table PARAMETRE
    (
    	codeparam varchar(5) primary key,
    	libparam varchar(15),
    	ordre number(2,0),
    	taillemin number(3,0),  
    	taillemax number(3,0),
    	valdefaut number(3,0),
    	codetype varchar(5),
    	constraint fk_codetype foreign key(codetype) references TYPEPARAM(codetype)
    );

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu devrais préciser un peu la mapping dans le fichier hbm.xml, tu tentes d'affecter un "decimal" (pour mySQL) à un int sans précision...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    <property name="ordre" type="int">
           <column name="ordre" precision="2" scale="0" not-null="true">
                <comment></comment>
           </column>
    </property>
    ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    pkoi not-null="true"?

  10. #10
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    c'est sur base ORACLE et non Mysql

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mnemonic78
    pkoi not-null="true"?
    Là c'est juste le groupe que j'ai copié qui l'avait, mais tu dois le mettre à false dans ton cas.
    Pour ce qui est de la base, j'utilise les 2, en production, c'est Oracle, pour jouer, c'est mySQL
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    j'avais essayé avec false ca marche pas

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    On peut voir le mapping (hbm) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 45
    Points
    45
    Par défaut
    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
     
     j'ai défini le champs valdefaut:
     
    Code :
     
    <hibernate-mapping package="com.ares.arpmsi.serveur.modele.hibernate" >
     
        <!--mapping classe -->
         <class name="ParametrePopup" table="PARAMETRE">
    		<id name="codeparam"  column ="CODEPARAM">
    			<generator class="assigned">
    			</generator>
    		</id>
        <property name="libparam" column="LIBPARAM"/>
        <property name="ordre" column="ORDRE"/>
        <property name="taillemin" column="TAILLEMIN"/>
        <property name="taillemax" column="TAILLEMAX"/>
        <property name="valdefaut" column="VALDEFAUT" not-null="false"/>
        <property name="codetype" column="CODETYPE"/>
     
      </class>
     
        </hibernate-mapping>

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu devrais essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <property name="valdefaut" type="int">
       <column name="valdefaut" precision="3" scale="0" not-null="false">
       <comment></comment>
       </column>
    </property>
    ...
    Et faire pareil pour les autres champs number
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2015, 19h17
  2. Réponses: 4
    Dernier message: 22/11/2007, 19h23
  3. Audit sur l'utilisation des champs de plusieurs tables
    Par Xavier2701 dans le forum Oracle
    Réponses: 1
    Dernier message: 29/03/2007, 08h26
  4. SQL : union de 2 tables contenant des champs OLE ?
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/12/2006, 20h37
  5. Réponses: 2
    Dernier message: 07/11/2005, 18h54

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