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] Définir son propre id generator [FAQ]


Sujet :

Hibernate Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut [Hibernate] Définir son propre id generator
    Pour les besoins d'une application, il me faut absoluement comme id de mes éléments persistant une sequence aléatoire de 8 chiffres. Hors je ne vois aucun id generator remplissant cette fonction.

    Existe t'il un generator réalisant ce que je souhaite (qu'est ce que ce serait bien ...) ?
    Sinon puis-je définir mon propre id generator qui réaliserai mon souhait ? Et comment si prend t'on ?
    La posix attitude ...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut Solution "bourrin"
    Tu peux faire faire ça par ton code Jav ! Tu mets ton generator hibernate en "assigned" et tu fait générer ta clé par le code java d'ajout d'élément.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Ouep c'est noté merci bien

    Mais n'y a t'il pas un moyen en dérivant ou impementant une certaine interface de le faire également ?

    Mais bon ca marche comme cela donc c'est deja très très bien
    La posix attitude ...

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, dans la doc de référence (http://www.hibernate.org/hib_docs/v3/reference/fr/html/mapping.html#mapping-declaration-id-generator), il est écrit
    Citation Envoyé par Hibernate.org
    Tous les générateurs doivent implémenter l'interface org.hibernate.id.IdentifierGenerator. C'est une interface très simple ; certaines applications peuvent proposer leur propre implémentations spécialisées.
    Il te suffit donc de créer ta classe qui implémente cette interface et de redéfinir la méthode generate
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Yep merci bien Nesmontou, c'est cela que j'avais entre apercu, mais impossible de remettre la main dessus, c'était donc dans la doc ....(en fait ça parait plus que normal, mais va savoir j'étais persuadé d'avoir vu ca sur un forum)
    La posix attitude ...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 370
    Points : 223
    Points
    223
    Par défaut
    Bon désolé, j'ai enlevé le tag Resolu parceque je ne vois vraiment pas quoi faire de cette interface ...

    Voici ce que j'obtiens pour la methode generate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Serializable generate(SessionImplementor session, Object object)
                throws HibernateException {
     
            return null;
        }
    Donc la un peu perdu, je cherche sur le net : je trouve que ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final String ENTITY_NAME="truc"
    donnera la nom truc a mon generateur (enfin je crois)

    Et je trouve un seul exemple implementant cette interface :
    http://www.koders.com/java/fid4FE9B4...CB0C3420F.aspx

    La autant dire que je rame un peu, quelqu'un pourrait t'il me detailler un peu plus ce qu'il faut faire dans cette methode, quoi faire avec les paramaètres d'entrées ?

    Je précise moi ce que je veux c'est simplement générer une sequence aléatoire de 8 chiffres comme id et bien évidement qu'elle n'existe pas déja dans la base.
    La posix attitude ...

  7. #7
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, si on dit que la clé que tu souhaite générer est du type CompositeId, tu peux faire quelque chose comme ceci il me semble
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     public Serializable generate(SessionImplementor session, Object object)
                throws HibernateException {
     
        return new CompositeId();
    }
    A améliorer pour générer une vraie clé
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

Discussions similaires

  1. Réponses: 10
    Dernier message: 21/08/2014, 14h56
  2. [ODS] Définir son propre style (via template) à l'aide d'ODS listing
    Par joyeux_lapin13 dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 19/10/2011, 11h49
  3. Réponses: 15
    Dernier message: 04/01/2007, 11h15
  4. [win32] définir son propre DLLMAIN.
    Par FamiDoo dans le forum MFC
    Réponses: 3
    Dernier message: 24/07/2006, 16h01
  5. [C#] Ajouter son propre composant dans Design de VS.Net
    Par yannick_sch dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/08/2004, 11h14

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