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

JPA Java Discussion :

Personnaliser la génération d'Id


Sujet :

JPA Java

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Par défaut Personnaliser la génération d'Id
    Bonjour,

    J'ai une Entity avec un id de type String, et j'aimerais savoir si JPA permet de personnaliser la génération automatique d'Id, et si oui comment.
    J'aimerais que l'Id de mon Entity soit par exemple de la forme une lettre + un entier incrémental formaté sur un nombre de chiffres constant (U0001, U0002, U0003, etc.)

    Savez-vous si c'est possible, et si oui comment ?

    Merci

  2. #2
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    La génération automatique des identifiant est réalisé selon différentes types :
    • Génération par identité
    • Génération par table
    • Génération par séquence


    Si tu veux avoir une clef définit par un algorithme personnel je ne sais pas comment tu peut automatiser cela.

    Personnellement, sans connaitre de solution transverse, je te dirai de supprimer la génération automatique et de créer ton id dans l'application avant enregistrement.

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Par défaut
    Je vois.
    Et en définissant un SequenceGenerator au niveau de l'Entity ou de l'Id, n'y a-t-il pas moyen de récupérer au niveau d'une méthode Pre-Persist la nextval de la séquence pour "setter" manuellement l'id ?

  4. #4
    Membre expérimenté Avatar de Shinzul
    Homme Profil pro
    Lecteur assidu de code source
    Inscrit en
    Janvier 2008
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lecteur assidu de code source
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 174
    Par défaut
    A ce que je sais de la génération par séquence tu peut uniquement le faire cibler une séquence spécifique en base de données (après si ca répond a ton problème pourquoi pas).

    Autrement si ton implémentation est Hibernate tu peut utiliser les GenericGenerator (meci pour ton post d’ailleurs j'ai découvert quelque chose en passant que je ne connaissait pas ).
    Il s'agit d'une annotation Hibernate qui te permet de définir une stratégie de génération de l'id qui peut être déjà connu ou définit via une classe de ton application qui implémente l'interface IdentifierGenerator.

    Pour plus de détails voir ici (Comme un petit problème sur le lien mais c'est le chapitre 2.4.2).

    En espérant que ca t'aide

  5. #5
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Par défaut
    Merci pour ta réponse

    Finalement j'ai opté pour le set de l'Id dans une méthode pre-persist (@javax.persistence.PrePersist), et pour le séquençage j'utilise le nombre de tuples de ma table comme valeur "noyau".

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

Discussions similaires

  1. règles de génération personnalisées par mot clef
    Par omnia69 dans le forum Visual C++
    Réponses: 1
    Dernier message: 17/11/2010, 08h09
  2. [JaxB]Personnaliser la génération des classes
    Par animus dans le forum Persistance des données
    Réponses: 1
    Dernier message: 15/10/2009, 10h49
  3. Réponses: 8
    Dernier message: 16/09/2009, 16h20
  4. Personnalisation de la génération des accesseurs
    Par SpecialCharacter dans le forum NetBeans
    Réponses: 3
    Dernier message: 25/08/2009, 11h19
  5. génération personnalisée java
    Par kimlaw95 dans le forum BOUML
    Réponses: 6
    Dernier message: 27/05/2009, 16h12

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