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 :

Gestion d'une Arraylist avec JPA - Oracle


Sujet :

JPA Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut Gestion d'une Arraylist avec JPA - Oracle
    Bonjour à tous,

    je suis stagiaire dans une entreprise et je vais développer avec Java EE une application web qui servira à la gestion de pas mal de choses.
    Comme le projet va être assez long je voulais gagner du temps en utilisant des frameworks comme JPA (EclipseLink) et JSF.

    Il y aura donc un de mes objets qui sera un Operateur qui aura notamment une liste de compétences (représentée dans mon modèle comme une ArrayList<String>).

    Et ça je ne sais pas comment je peux gérer ça avec ma base de données Oracle...

    Est ce que vous pouvez me dire comment le gérer au niveau de ma base de données svp ? (surtout quel type utiliser et comment je pourrais faire des requêtes dessus)

    Merci d'avance !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 86
    Par défaut
    Citation Envoyé par Taigong62 Voir le message
    Bonjour à tous,

    Il y aura donc un de mes objets qui sera un Operateur qui aura notamment une liste de compétences (représentée dans mon modèle comme une ArrayList<String>).

    Et ça je ne sais pas comment je peux gérer ça avec ma base de données Oracle...
    Bonjour Taigong62,

    Peux-tu être plus clair dans tes explications?
    Ce que j'ai compris, c'est que tu as dans une classe un membre de type ArrayList<String> que tu veux alimenter à partir d'une table de BDD... C'est bien ça?

    Si c'est le cas, il faut bien préciser comment tu comptes accèder à tes données? Plus haut tu parlais de JPA !? Est ce necessaire d'utiliser cette couche dans ton projet?


    Aouane

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut
    Voila le relationnel pour ma classe Operateur :

    Operateur(#login : String, nom : String, prenom : String, role : String, email : String, actif : boolean, competences : List<String>, numEquipe : String => Equipe.num)

    Comme je ne suis là que pour 6 mois, je voulais faire quelque chose de propre (donc coder une appli web respectant bien MVC). Je sais qu'il est possible de faire par exemple une architecture VUE-CONTROLEUR-DAO-MODELE mais comme c'est un assez gros projet je veux gagner du temps c'est pourquoi je veux utiliser des frameworks comme JPA et JSF pour que le code soit allégé.

    La base de données que je vais utiliser a un SGBD Oracle. C'est pourquoi je veux savoir pour ma table opérateur comment je vais pouvoir représenter dans la base de données son attribut compétences. Concrétement comment est ce que je pourrais le déclarer dans mon instruction "CREATE TABLE ..." et ensuite si c'est un format spécial comment je pourrais l'utiliser avec JPA efficacement.

    On m'a dit par exemple que je pourrais faire deux tables Operateur-Compétence et après une classe d'association OperateurCompétence. N'est - il pas possible de faire autrement ? (tjrs dans l'optique de le gérer avec JPA derrière)

    Merci d'avance ! (désolé si je m'exprime mal j'essaie de travailler là dessus )

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,

    Dans ta demande, tu réunis plusieurs compétences dissimulées dans des phrases, il va falloir clarifier tout ça , mais tout va dépendre de tes propres bases de connaissance à toi.
    Citation Envoyé par Taigong62 Voir le message
    Voila le relationnel pour ma classe Operateur :

    Operateur(#login : String, nom : String, prenom : String, role : String, email : String, actif : boolean, competences : List<String>, numEquipe : String => Equipe.num)
    Comme tu pars d'une base de donnée non existante et qu'il faut tout concevoir, alors t'as le choix entre :
    -Faire une conception UML de ton modèle objet ensuite, générer les classes entités, et avec Hibernate générer le modèle physique correspondant sous oracle
    -Ou utiliser la méthode Merise sous Power AMC (par exemple) et concevoir ton modèle Conceptuel,ensuite générer le modèle Physique correspondant et donc le script sql de la base correspondante qui permettra de créer la base sous oracle. Ceci a l'avantage de décorreler l'évolution du modèle Objet du modèle relationnel. A supposer que demain la base soit sollicitée pour un autre projet et donc subit des évolutions de structure n'impactant pas ton projet initial.
    Dans cette 2 eme approche tu fais quand même ta conception du diagramme UML et un mapping Objet Relationnel JPA pour coller à la base pécédemment créee.
    Citation Envoyé par Taigong62 Voir le message
    Comme je ne suis là que pour 6 mois, je voulais faire quelque chose de propre (donc coder une appli web respectant bien MVC). Je sais qu'il est possible de faire par exemple une architecture VUE-CONTROLEUR-DAO-MODELE mais comme c'est un assez gros projet je veux gagner du temps c'est pourquoi je veux utiliser des frameworks comme JPA et JSF pour que le code soit allégé.
    Utiliser des technologies à la pointe ce n'est pas forcément gagner du temps,il ne faut rien mélanger.Bien faire a des avantages et inconvénients, surtout si tu n'as pas les bases.De telles applications bien structurées sont bénéfiques sur le long terme, lors des maintenances correctives ou évolutives par exemple.Mais avec une petite base tu ne gagneras pas forcément du temps malheureusement.
    Citation Envoyé par Taigong62 Voir le message
    La base de données que je vais utiliser a un SGBD Oracle. C'est pourquoi je veux savoir pour ma table opérateur comment je vais pouvoir représenter dans la base de données son attribut compétences. Concrétement comment est ce que je pourrais le déclarer dans mon instruction "CREATE TABLE ..." et ensuite si c'est un format spécial comment je pourrais l'utiliser avec JPA efficacement.
    Je vois clairement dans cette question ta méconnaissance de la modélisation (UML ou Mérise confondue).Difficile de te l'apprendre ici, voila des tutoriels ici pour Merise et UML.
    Citation Envoyé par Taigong62 Voir le message
    On m'a dit par exemple que je pourrais faire deux tables Operateur-Compétence et après une classe d'association OperateurCompétence. N'est - il pas possible de faire autrement ? (tjrs dans l'optique de le gérer avec JPA derrière)
    Bien faire la conception de son diagramme avant de faire appel à JPA, ce n'est qu'une implémentation d'une structure déjà bien élaborée.
    Citation Envoyé par Taigong62 Voir le message
    Merci d'avance ! (désolé si je m'exprime mal j'essaie de travailler là dessus )
    Tu exprimes bien ton besoin. Bon courage

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 29
    Par défaut
    Merci pour tes réponses DevServlet !

    Je me suis assez familiarisé avec les technologies que j'utilise maintenant et ca marche dans l'ensemble assez bien pour l'instant.

    J'ai donc utiliser comme j'avais dit une table OperateurCompetence qui fait le lien entre les deux entités. De plus un opérateur a un niveau d'acquisition pour cette compétence, attribut que j'ai pu ajouter à la table que j'ai cité plus haut.

    Le soucis que j'ai peur d'avoir avec mon modèle est qu'il est amené à changer par la suite peut être (selon les idées que peuvent avoir les responsables qui m'encadrent -par exemple avec le niveau d'acquisition-). Le problème finalement c'est que dans ce cas ci la modification n'impacte pas le modèle profondément et ne change donc pas ma base de données, mais si c'était un changement plus extrême ....

    C'est vrai que j'ai durant mon cursus fait du Merise et de l'UML mais que je m'embrouille un peu dans tout ca. Merci pour les explications et les lies en tout cas !

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

Discussions similaires

  1. [SimpleXML] Gestion d'une liste avec xml
    Par juninho269 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 29/05/2008, 17h06
  2. [C# 1.1] Comment retourner une ArrayList avec un WS ?
    Par pi05 dans le forum Services Web
    Réponses: 6
    Dernier message: 09/02/2007, 13h00
  3. declarer une ArrayList avec un type precis
    Par solawe dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 30/12/2006, 20h28
  4. Affichage d'une ArrayList avec logic:iterate
    Par mitje dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/09/2006, 10h02
  5. Demarrer une instance avec ISQLPLUS (Oracle 10g)
    Par jpouil dans le forum Oracle
    Réponses: 3
    Dernier message: 22/03/2006, 06h09

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