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 :

comment enregistrer via hibernte d'une donnée avec incrementation automatique


Sujet :

Hibernate Java

  1. #1
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut comment enregistrer via hibernte d'une donnée avec incrementation automatique
    tout ce bloque à partir de l'identifiant qui est clef primaire et incrementé automatiquement.
    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
    	Session session3 = HibernateUtil.getSessionFactory().openSession();
     
    			Transaction tx3 = session3.beginTransaction();	
     
    		System.out.print("Debut des SETS");
     
    		client.setConfirme(0);System.out.print("confirme");
    		client.setEmail(monClient.getEmail());System.out.print("email");
    		client.setIdClient(Integer.parseInt(list2.get(0).toString())+1);System.out.print("id");
    		client.setLogin(monClient.getLogin());System.out.print("login");
    		client.setPassword(monClient.getMdp());System.out.print("mdp");
    		client.setPasswordConfirme(monClient.getMdpc());System.out.print("mdpconfirme");
    		System.out.print("Fin des SET");
    		session3.saveOrUpdate(client);
    		session3.flush();
    		tx3.commit();
    		session3.close();
    Les temoins System.out s'arrêtent à "email". Cela bloque donc avant System.out.print("id");
    Comment faire pour enregistrer un objet avec champs automatiquemant incrémenter. Merci

  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
    Si c'est auto-incrémenté, tu n'as pas besoin d'utiliser le setter sur ton id.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    au hasard comme ça, en toute logique, soit list2 est vide, soit il ne contient pas un entier comme premier élément...

  4. #4
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    en fait la liste n'est pas vide (list.isempty() n'est pas validant). Seul list.get(0)=null est vrais

  5. #5
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Tu es censé avoir quel objet dans ta liste ?

    Si tu as null, et que c'est normal, fais toi une méthode qui prenne tes objets en entrée et qui assigne 0 (ou -1, ou toute valeur souhaitée) à null, et la formule de ton choix si l'objet n'est pas null.

    Edit : d'une manière générale, tu peux mapper avec hibernate un id sur une séquence qui s'auto-incrémente en base. C'est ce que tu veux faire ?

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il y a un problème de compréhension là, si la clé est auto-incrémentale, on ne positionne pas la valeur à la colonne id.
    Ton mapping par contre est important, il devrait ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <id name="id" type="integer">
       <column name="ID" />
       <generator class="TYPE_GENERATEUR" />
    </id>
    avec comme valeur de TYPE_GENERATEUR :

    - identity (pour MySQL)
    - sequence (pour Oracle)
    - etc...

    Tu peux rechercher sur le net la liste des valeurs de generator...

    A+

  7. #7
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Merci pour vos réponse, mais je manque serrieusement d'information.
    Pouvez vous me donner un bon tutoriel sur jboss tools hibernate même en anglais merci

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    su le site de jboss, tu trouvera un doc de 3km de long sur hibernante. Sur les tutoriel de developpez, il y en a aussi quelques unes, merci d'utiliser la fonction rechercher.

Discussions similaires

  1. Recupérer une donnée avec un WHERE concernant la date
    Par benlasavate dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 08h18
  2. Comment insérer le résultat d'une commande avec vim
    Par zelda dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 28/12/2005, 09h32
  3. Comment arreter le rafraichissement d'une page avec un popup
    Par Wanty dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 14h44
  4. Réponses: 17
    Dernier message: 18/03/2005, 15h56

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