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 :

[EJB3] modélisation d'un horaire


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut [EJB3] modélisation d'un horaire
    Bonjour à tous.

    Alors voilà j'ai un problème avec JPA. J'ai un table représentant les horaires du personnel, dont voici les différents champs
    person_id (int)
    day (int)
    hour (int)
    presence (int)
    primary key(person_id, day, hour)
    En gros une personne à un certains nombre d'entrée dans la table correspondant à sa présence ou non, à un jour de la semaine et une heure.

    Sachant que je dois représenter les horaires dans un tableau à double entrée sur une page web. Je n'arrive pas à trouver comment modéliser cette table en classe(s) avec JPA de façon a ce que ce soit exploitable pour un tableau a double entrée.

    Merci d'avance pour votre aide.
    En espérant avoir été clair.

    Max

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Une remarque qui ne va peut-être pas résoudre ton problème mais j'y vais quand même.
    Il ne faut pas modéliser tes classes en fonction de ton interface graphique.
    Les deux ne doivent pas être liés.
    Rédige tes classes par rapport à une logique métier, ensuite il suffira décrire la bonne requête ou d'initialiser les bons objets pour peupler ton interface graphique.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    Les requetes risquent de dépendre de l'affichage. Il faut essayer de limiter leur nombre.

    Il est possible de faire une requete correctement triée (utilisation de order by) qui ramène toutes les données. Charge ensuite à l'affichage de placer les informations correctement dans un tableau en bouclant (l'order by permet de simplifier le travail)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    em.createQuery("from Horaires as hp where hp.day>?1 order by hp.person_id, hp.day, hp.hour")
    .setParameter(1, jourDepart)
    .getResultList();
    Il peut être plus intéressant et simple de faire une requête par ligne ou par colonne. Cela n'est viable que s'il ne s'agit pas d'un tableau avec trop de lignes.

    S'il est nécessaire de faire une somme des heures, il est possibles d'utiliser une aggrégation avec group by et sum sur la colonne. Dans ce cas, on obtient une projection.
    J'ai fait un tutorial qui présente différent aspect des requêtes : exemples de query avec group by et count et traitement d'une projection

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Les requetes risquent de dépendre de l'affichage
    Oui, mais pas la modélisation des objets.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    Oui, mais pas la modélisation des objets.
    Je suis globalement d'accord même si le sujet est pour moi d'ordre philosophique.
    Mais au vu de la classe en exemple : je n'ai vraiment pas l'impression qu'il soit tombé dans ce travers

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Une remarque qui ne va peut-être pas résoudre ton problème mais j'y vais quand même.
    Il ne faut pas modéliser tes classes en fonction de ton interface graphique.
    Les deux ne doivent pas être liés.
    Rédige tes classes par rapport à une logique métier, ensuite il suffira décrire la bonne requête ou d'initialiser les bons objets pour peupler ton interface graphique.
    D'abord merci à vous deux.
    Fr1man je suis amplement d'accord avec toi et j'ai d'abord modélisée ma classe sans me soucier de mon interface graphique. C'est par après que cela ce complique.

    C'est assez tordu comme systeme. En gros j'affiche les horaires sur une page qui présente un département, avec les différents membres du personnel et leur horaire. J'ai donc une classe Departement qui contient une list de Person et chaque personne contient ses horaires. J'utilise les annotations jpa pour charger le tout. Donc je n'applique pas de requetes moi même pour récupérer les horaires.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Où bloques-tu ?

    Il te suffit de parcourir la liste des personnes, et pour chacune d'elle, afficher ses horaires.
    Si tu dois afficher, par rapport à une date ou d'autres critères, il faudra faire une requête comme l'a dit JeanLucT.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Par défaut
    Bonjour,

    Je bloques dans la modélisation de l'horaire et surtout avec les annotations JPA. J'aimerai pouvoir avoir, si possible, dans ma classe personne une liste de jour, et chaque jour contiendrai une liste d'heure avec la présence ou non de la personne.

    Edit:
    Ok j'ai compris comment faire, il faut que je charge les horaires à la main, comme me l'a fait remarquer JeanLucT.

    Merci à tout les 2.

    Max

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

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  3. modélisation bdd horaires
    Par uwestern dans le forum Débuter
    Réponses: 0
    Dernier message: 23/06/2013, 00h07
  4. Modélisation des horaires et hauteurs de marées
    Par 973thom dans le forum Modélisation
    Réponses: 2
    Dernier message: 20/01/2009, 16h35
  5. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49

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