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 :

[Hibernate 3] [HQL] Faire un Insert via HQL


Sujet :

Hibernate Java

  1. #1
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut [Hibernate 3] [HQL] Faire un Insert via HQL
    Bonjour,

    J'ai beau lire la documentation sur le site officiel d'Hibernate (chap 13.4), mais je n'arrive pas trop à comprendre comment écrire ma requête HQL pour insérer un nouvel objet dans ma base de données.
    J'ai donc besoin de votre aide pour mieux cerner la méthode.

    Voici le fichier de mapping de l'objet que je veux insérer :
    Code XML : 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
    <hibernate-mapping>
    	<class name="core.database.mapping.DbTypeDocument" table="DBTYPEDOCUMENT">
     
    		<id column="NCLETYPEDOCUMENT" name="id" type="java.lang.Long">
    			<generator class="native"/>
    		</id>
     
    		<property column="SLIBELLETYPEDOCUMENT" length="100" name="libelleTypeDocument" not-null="true" type="java.lang.String"/>
     
    		<property column="SURLPOPUPSPECIALISE" length="255" name="urlPopupSpecialise" type="java.lang.String"/>
     
    		<property column="OBEANCALCULBOITEARCHIVAGE" length="255" name="obeancalculboitearchivage" type="java.lang.String"/>
     
    		<property column="BPOSSEDEUNEPOPUP" length="5" name="possedeUnePopup" type="java.lang.Boolean"/>
     
    		<property column="BESTAJOUTNOTE" length="1" name="ajoutNotePossible" type="java.lang.Boolean"/>
     
    		<property column="STYPEIMAGE" length="20" name="typeImage" type="java.lang.String"/>
     
    		<property column="SIDTYPEDOCUMENT" length="100" name="idTypeDocument" not-null="true" type="java.lang.String"/>
     
    		<property column="NDELAIPURGE" length="5" name="delaiPurge" type="java.lang.Integer"/>
     
    		<many-to-one name="dbEtablissement" column="NCLEETABLISSEMENT" class="core.database.mapping.DbEtablissement"/>
     
    		<many-to-one name="dbDomaine" column="NCLEDOMAINE" class="core.database.mapping.DbDomaine"/>
     
                    <many-to-one name="dbInfosImaging" column="NCLEINFOSIMAGING" class="core.database.mapping.DbInfosImaging"/>
     
                    <many-to-one name="dbBoiteArchivage" column="NCLEBOITEARCHIVAGE" class="core.database.mapping.DbBoiteArchivage"/>
     
                    <many-to-one name="dbInfosCold" column="NCLEINFOSCOLD" class="core.database.mapping.DbInfosCold"/>
     
    		<set name="dbControleDAccess" inverse="true">
    			<key column="NCLETYPEDOCUMENT" />
    			<one-to-many class="core.database.mapping.DbControleDAcces"/>
    		</set>
     
    		<set name="dbCriteres" inverse="true">
    			<key column="NCLETYPEDOCUMENT" />
    			<one-to-many class="core.database.mapping.DbCritere"/>
    		</set>
     
    	</class>
     
    </hibernate-mapping>

    L'id de l'objet est généré automatiquement à sa création donc pas besoin de le renseigner.

    Merci pour votre aide.

  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
    Le plus simple est de faire un new de ton objet, de faire des set sur les attributs et de faire un session.save().
    Pourquoi veux tu le faire spécialement en HQL ?

  3. #3
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut
    Ben en fait je voulais comparer avec la méthode Session.save(Object) pour savoir quel est la plus rapide entre cette méthode session et la méthode HQL.

  4. #4
    Membre habitué Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 187
    Points
    187
    Par défaut
    Bon ben je pense que le mieux c'est de laisser la méthode de session.
    Même si je n'ai pas pu comparer le temps d'exécution entre la méthode HQL et session.
    Par contre j'ai comparer un update session avec un update HQL et la méthode session est plus rapide.

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

Discussions similaires

  1. [HQL] Faire un update d'une table
    Par bouchette63 dans le forum Hibernate
    Réponses: 6
    Dernier message: 25/10/2006, 09h34
  2. [Help] pb d'insertion via PHP ...
    Par romtrash dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/04/2005, 11h47
  3. Comment faire une insertion dans un fichier texte ?
    Par Isa31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2004, 09h06
  4. [C#] Faire un INSERT en même temps dans 2 bases differentes
    Par Pingva dans le forum Accès aux données
    Réponses: 8
    Dernier message: 09/09/2004, 12h07
  5. faire un insert pour un champ blob
    Par tripper.dim dans le forum InterBase
    Réponses: 10
    Dernier message: 02/05/2003, 16h56

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