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 :

[noob] sauvegardes des champs d'une classe


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 50
    Points : 38
    Points
    38
    Par défaut [noob] sauvegardes des champs d'une classe
    Newbie d'Hibernate, j'ai un problème d'insertion. Le champ clé (idConsigne) et un autre (mainCouranteIdMain) veulent bien s'insérer mais pas les deux autres.


    _Soit le mapping suivant :

    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
     
    <hibernate-mapping package="asp">
    	<class
    		name="ConsignesFormulaireBean"
    		table="consigne"
    	>
    		<meta attribute="sync-DAO">false</meta>
     
    		<id name="idConsigne" type="java.lang.Long">
    		<column name="id_consigne"
    			not-null="true"
    			length="32"/>
    			<generator class="increment" />
    		</id>
    		<property
    			name="typeConsigne"
    			column="type_consigne"
    			type="java.lang.Byte"
    			not-null="false"
    			length="8"
    		/>
    		<property
    			name="intitule"
    			column="intitule_consigne"
    			type="java.lang.String"
    			not-null="false"
    			length="64"
    		/>
    		<property
    			name="mainCouranteIdMain"
    			column="main_courante_id_main"
    			type="java.lang.Long"
    			not-null="false"
    			length="32"
    		/>
    _Soit le Bean correspondant, qui a donc les champs :

    byte typeConsigne;
    String intitulé
    long mainCouranteIdMain

    avec bien sûr les accesseurs qui vont bien (merci pour eux !).

    _Soit la classe de test suivante :

    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
     
    public static void main(String[] args)
    	throws HibernateException {
     
    		byte un=1;
    		byte trois=3;
     
    		Session session = HibernateUtil.currentSession();
     
    		Transaction tx = session.beginTransaction();
     
    		ConsignesFormulaireBean consigne = new ConsignesFormulaireBean();
    		consigne.setIntitule("Faire gaffe !");
    		consigne.setTypeConsigne(trois);
    		consigne.setMainCouranteIdMain(1L);
    		System.out.println(consigne.getTypeConsigne());
    		session.save(consigne);
     
    		consigne = new ConsignesFormulaireBean();
    		consigne.setIntitule("Rien de spé");
    		consigne.setTypeConsigne(un);
    		consigne.setMainCouranteIdMain(2L);
    		session.save(consigne);
     
    		tx.commit();
     
    		HibernateUtil.closeSession();
    }
    _Enfin, soit la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <table>
    		<column java.sql.Types="-5" name="id_consigne" nullable="false" position="1" primaryKey="false" size="32" type="bigint"> <defaultValue>0</defaultValue>
    		</column>
     
    		<column java.sql.Types="4" keyOrder="0" name="type_consigne" nullable="false" position="2" primaryKey="false" size="9" type="mediumint">
    			<defaultValue>0</defaultValue>
    		</column>
    		<column java.sql.Types="12" keyOrder="0" name="intitule_consigne" nullable="false" position="3" primaryKey="false" size="255" type="tinytext">
    			<defaultValue />
    		</column>
    		<column java.sql.Types="-5" keyOrder="0" name="main_courante_id_main" nullable="true" position="4" primaryKey="false" size="32" type="bigint" />
    	</table>

    Mes accesseurs fonctionnent, le println() me le prouve. J'ai l'impression qu'il s'agit d'un problème de types incompatibles entre mes tables et le code Java, mais je ne vois pas quoi faire.

    Merci d'avance !

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Essaie d'insérer ton objet avec un Long et un Byte au lieu d'un long et d'un byte.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Bah je suis en Java 5, ils sont autoboxés ! Eclipse me le confirme...

Discussions similaires

  1. Sauvegarde des champs d'une classe dans un fichier
    Par AlfredKr dans le forum Débuter
    Réponses: 1
    Dernier message: 15/10/2012, 15h39
  2. Réponses: 2
    Dernier message: 07/09/2010, 15h47
  3. Réponses: 14
    Dernier message: 15/01/2004, 02h15
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 15h09
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 07h53

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