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

Java EE Discussion :

Gestion de clés primaires [EJBQL]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Par défaut Gestion de clés primaires
    Bonjour,

    Je souhaite créer un EJB afin de gérer les clés primaires de mes tables.
    Par exemple, j'ai une table CLIENT, à laquelle je souhaite affecter une nouvelle clé primaire générée automatiquement (par incrémentation de 1) à chaque création de client.

    Je travaille sous Eclipse 3.1 et Struts, et il me manque donc une méthode qui reprenne toutes les clés primaires, choisisse la plus éloignée de 0 pour procéder à une incrémentation et générer la nouvelle clé.

    Je précise que je suis débutant.

    Merci à vous.


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par défaut
    Je ne suis pas sûr que la création d'un EJB soit la bonne solution.
    Une classe Java classique me semble mieux.
    Ensuite, peux-tu nous dire quelle base de données tu utilises car dans Oracle, par exemple, tu as la notion de "séquence" qui fait cela pour toi ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Par défaut
    Salut Ego,

    Merci de ta réponse.

    En fait je travaille sur un projet existant basé sur Struts. La partie métier est gérée par des EJB et pour garder l'homogénéité de l'application je dois les utiliser afin d'accéder à la base.

    Ma base de donnée est PostgreSQL, mais je dois travailler uniquement en EJB-QL et à première vue, il ne me semble pas possible d'y mettre des séquences. En outre, il me semble possible, à travers une méthode créé dans un EJB session, d'extraire les clés primaires, et de les trier pour déterminer le numéro le plus éloigner de 0 afin d'en créer un nouveau par incrémentation.

    Toutefois, je pense pouvoir tirer la solution de la classe Java classique que tu as évoquée, ce qu'il me manque c'est l'algorithme du trie. C'est tout bête je sais, mais je suis pas foutue de faire cet organo. Merci pour ton aide.

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par défaut
    Attention à ne pas tout mélanger.
    Struts et EJB n'ont rien à voir ici.
    La problématique de persistance des données est probablement traitée dans ton application côté "serveur", là où son tes EJBs. Tes EJBs peuvent tout à fait faire appel à des classe Java classiques.
    Il n'y a aucune raison pour rester "homogène" mais si tu veux t'encombrer de la lourdeur d'un EJB pour cela, libre à toi.
    Dans PostgreSQL tu as comme dans Oracle la notion de séquence, il ne te reste qu'à en créer et à en encapsuler l'usage dans une classe Java toute classique !!
    cf. http://www.postgresql.org/docs/8.1/i...-sequence.html

    L'avantage de passer par la base c'est que les problèmes d'accès concurrent sont gérés pour toi !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 106
    Par défaut
    Mais ou va t-on..

    Du définis un champs auto-increment dans ta base de données et puis c'est tout.

    Depuis quand on a recourt à des EJB pour gérer des index ou des clefs...Je comprend meme pas cette phrase.

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par défaut
    Attention à ce que tu dis !
    ok pour la remarque sur les EJBs mais la notion d'autoincrement n'existe pas dans toutes les BD !!!
    En plus, il peut être nécessaire de mieux maitriser l'allocation des clés primaires, soit pour des contraintes de format de la clé, soit pour pouvoir, au niveau d'un framework de persistance, gérer les clé étrangères !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 106
    Par défaut
    certes certes....
    Dans ce cas la en tout cas, je pense réellement que cela suffit.
    Il y'a trop souvent des projets ou on utilise un basouka pour tuer une mouche. Je trouve dommage de ne pas rester sur des choses simples.

    Et la j'extrapole mais c'est tout le probleme de J2EE et de tous les frameworks dérivés. Il y'a tellement de chose que les gens cherchent forcement à utiliser tout pour le moindre projet.

    Question 1: quelle bdd ne supporte pas l'auto-increment ?
    Question 2: peux tu développer
    En plus, il peut être nécessaire de mieux maitriser l'allocation des clés primaires, soit pour des contraintes de format de la clé, soit pour pouvoir, au niveau d'un framework de persistance, gérer les clé étrangères !
    Merci ego pour tes conseils et explications.
    Et désolé pour ma fougue

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Par défaut
    Pour info, dans le livre "EJB Design Patterns", le chapitre 5 expose trois méthodes de génération de clé primaire.

    Ce livre est téléchargeable gratuitement au format pdf, sur TheServerSide.com.

  9. #9
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Par défaut
    Merci à tous pour vos réponses.

    Pour info: je débute et celà dans un stage pas facile ou il m'ai demandé beaucoup, c'est évident alors que je puisse prendre des mauvaises pistes.

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

Discussions similaires

  1. Gestion des clés primaires et étrangères
    Par jonrod dans le forum Designer
    Réponses: 5
    Dernier message: 10/04/2012, 10h38
  2. comment avoir la gestion des clés primaires avec sql serveur/EF
    Par olivier57b dans le forum Entity Framework
    Réponses: 12
    Dernier message: 12/06/2011, 14h46
  3. [EJB3 Entity] gestion des clés primaires avec EJB3 !
    Par magnum_cl9 dans le forum Java EE
    Réponses: 6
    Dernier message: 17/07/2009, 17h43
  4. [SGBDR]Clés primaires?
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 21/11/2004, 22h48
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

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