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

Play! Java Discussion :

Question sur les méthodes play.db.jpa.Model


Sujet :

Play! Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Question sur les méthodes play.db.jpa.Model
    Bonjour à tous

    Étudiant en 4e année, intéressé depuis quelques temps par l'univers java, je me tourne vers le framework Play! qui me semble bien plus que prometteur.

    Touchant à des notions qui sont encore un peu fragiles pour moi, j'aimerais vous poser une ou deux petites questions.

    Dans la majorité des exemples et/ou tutoriels présents sur le web, les classes issues de la partie model sont systématiquement (sauf erreur de ma part) annotés "@Entity".
    Sauf erreur de ma part, c'est une annotation qui vient de javax.persistence, cependant j’entends également parler d’hibernate et j'ai du mal à comprendre pourquoi l'annotation que l'on utilise est issue de javax.persistence et non de org.hibernate.annotations. ( J'ai vu que pour certaines annotations la seule importation possible était celle de javax.persistence. Peut-être pour cette raison ? )

    L'autre point que j'aimerais éclaircir concerne les méthodes fourni par le model de play. Lorsque l'on hérite de celui-ci on a alors acces à certaines méthode, ( ex: find(), save(), fetch() etc..) qui sont en fait des process de requêtage en base. Ma question est alors, comment se traduisent ces méthodes si l'annotation @Entity n'est pas présente à la définition de la classe ? Où le model de play va-t-il chercher/sauver ces informations ?

    Merci d'avance pour les réponses que vous pourrez m'apporter

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par sarazinj Voir le message
    Bonjour à tous
    Bonjour et bienvenue à toi !

    Citation Envoyé par sarazinj Voir le message
    Dans la majorité des exemples et/ou tutoriels présents sur le web, les classes issues de la partie model sont systématiquement (sauf erreur de ma part) annotés "@Entity".
    Sauf erreur de ma part, c'est une annotation qui vient de javax.persistence, cependant j’entends également parler d’hibernate et j'ai du mal à comprendre pourquoi l'annotation que l'on utilise est issue de javax.persistence et non de org.hibernate.annotations. ( J'ai vu que pour certaines annotations la seule importation possible était celle de javax.persistence. Peut-être pour cette raison ? )
    JPA - Java Persistence API - est une API introduite pour aider et standardiser la persistence pour les applications Java. Mais pour que cela fonctionne, il faut une implémentation, c'est-à-dire un framework qui soit à même de réaliser les fonctionnalités proposées par la specifications JPA. Hibernate en est une, mais ce n'est pas la seule.
    Il sera donc préférable d'utiliser javax.annotation.Entity, car cela montre que ta classe est une entité JPA, quelque soit l'implémentation choisie (Hibernate, EclipseLink, etc.).

    Pour faire vraiment simple, c'est un peu comme si tu déclares un liste en Java. Il est préférable de faire List<String> maListe = new ArrayList<String>() que ArrayList<String> maListe = new ArrayList<String>(), car ta liste est de type List, sans présager de l'implémentation réellement utilisée (ArrayList, LinkedList, etc.)


    Citation Envoyé par sarazinj Voir le message
    L'autre point que j'aimerais éclaircir concerne les méthodes fourni par le model de play. Lorsque l'on hérite de celui-ci on a alors acces à certaines méthode, ( ex: find(), save(), fetch() etc..) qui sont en fait des process de requêtage en base. Ma question est alors, comment se traduisent ces méthodes si l'annotation @Entity n'est pas présente à la définition de la classe ? Où le model de play va-t-il chercher/sauver ces informations ?
    Il te faut annoter ta classe avec @Entity. L'idée de Play! à ce sujet et de disposer pour chaque entité d'un DAO "automatiquement" pour faire les opérations de CRUD.

    Est-ce plus clair ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Bonjour et bienvenue à toi !
    Merci bien


    Citation Envoyé par romaintaz Voir le message
    Est-ce plus clair ?
    Complètement

    Pour le premier point, l'idée est donc de laisser "un type de JPA" abstrait afin de ne pas dépendre d'une implémentation. Via ton exemple sur la list, je comprend donc que l'on peu choisir de travailler de différentes façon selon l'implémentation choisie.

    Pour le second point, cela rejoint bien mon idée initiale donc tout va bien

    Merci encore pour ces précisions

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    De rien, content de t'avoir aidé.
    Si cela répond bien à tes questions, pense à cliquer sur le bouton
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

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

Discussions similaires

  1. question sur les méthodes de segmentation d'image
    Par mina_star dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 20/06/2012, 00h39
  2. question sur les méthodes statique
    Par yacin87 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/04/2010, 10h32
  3. Réponses: 2
    Dernier message: 21/05/2009, 12h31
  4. Réponses: 3
    Dernier message: 17/09/2008, 13h52
  5. Question sur les méthodes abstraites
    Par nmathon dans le forum Delphi
    Réponses: 3
    Dernier message: 15/06/2006, 20h30

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