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 :

Initialisation propriétés entités JPA


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut Initialisation propriétés entités JPA
    Bonjour à tous,

    Le débat a sûrement déjà eu lieu ailleurs, ma question est la suivante, doit-on initialiser les propriétés d'une entité au moment de sa création ou le faire au moment de l'accès au niveau de l'entité?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class person implements serializable{
    ...
    private String nom;
    private Date date = new Date()
    private Departement dept = new Departement();
    ..
     
    }

  2. #2
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Bonjour,

    Je n'ai jamais vu une entité qui implémente Serializable.
    Si tu parles d'un entityController: le plus propre (à mon avis) serait d'initialiser certaines valeurs dans une méthode @PostConstruct. Pour initialiser une variable String ou Date c'est possible même dans le constructeur du Controller (on peut supposer que new String() et new Date() seront crées sans problème) mais une variable Departement devrait absolument être initialisée dans une méthode @PostConstruct.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut
    Merci pour ta réaction mais le code exemple est mauvais effectivement, il s'agit d'une entité POJO et elle n'implémente pas l'interface serializable. Donc je reformule ma question et j'aimerai avoir un avis sur la question. Ces entités sont lues via ma page Jsf via les méthodes get et si elle ne sont pas initialisées renvoient null.

  4. #4
    Membre éprouvé Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Par défaut
    Plusieurs réponses sont possibles. Pour ma part, je préfère initialiser les champs lors de la création d'une entité, notamment en utilisant les setters.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Person p = new Person();
    p.setDate(new Date());
    p.setDepartment(new Department());
    Autre solution : tu peux créer différents constructeurs qui initialiseront tes champs plutôt que d'utiliser les setters.

  5. #5
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par chewing-gum Voir le message
    Plusieurs réponses sont possibles.
    Effectivement...

    Habituée des applications JavaEE et du modèle MVC, pour moi:
    - une entité c'est une classe Java qui "reflète" un enregistrement d'une table de la base de données
    - un Contrôleur (JSF, ManagedBean) c'est une classe Java qui implémente l'interface Serializable et gère les différentes instances d'un même objet
    - une "vue" (page .xhtml dans mon cas) est censée à regrouper certains éléments d'un ou plusieurs objets pour les afficher à l'utilisateur à l'aide des
    - Façades (EJB), des classes Java qui se chargent d'effectuer des requêtes dans la base de données pour obtenir les objets à afficher (selon des critères spécifiques) à l'utilisateur.

    Alors j'aimerais bien comprendre comment peut-on initialiser les champs d'une entité lors de sa déclaration, quand de mon point de vue: une entité n'est qu'un modèle, une "réservation d'espace" dans la mémoire du programme Java et qu'on peut gérer plusieurs instances d'un objet sans en avoir à faire des "constantes", c'est à dire: des instances d'un seul et toujours le même objet.

    Je comprends que Java est vaste comme domaine et que je ne suis pas au bout de mes découvertes (comme dirait Belgique Loisirs) mais j'aimerais bien comprendre au moins l'objet de cette discussion. Merci par avance à ceux qui pourraient m'éclairer!

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut
    Merci pour ta réaction, je vois qu'il ya plusieurs possibilités adapter à chaque usage et qu'il nya pas de best practice à la matière.

  7. #7
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par kokumbo Voir le message
    je vois qu'il ya plusieurs possibilités adapter à chaque usage et qu'il nya pas de best practice à la matière.
    Ben, peut-être qu'il y en a et nous ne sommes pas au courant...

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

Discussions similaires

  1. Problème de suppression d'une entité JPA
    Par ddxxgg dans le forum JPA
    Réponses: 3
    Dernier message: 16/02/2009, 12h25
  2. netbeans: génération de la bd après création des entités jpa
    Par lamabalo dans le forum Persistance des données
    Réponses: 0
    Dernier message: 07/10/2008, 20h55
  3. où insérer le code des entités jpa
    Par cool dans le forum JPA
    Réponses: 4
    Dernier message: 24/04/2008, 17h25
  4. Initialisation des Entités JPA
    Par bouba dans le forum JPA
    Réponses: 2
    Dernier message: 27/09/2007, 18h09
  5. initialiser propriété value dans champ input
    Par dubitoph dans le forum Langage
    Réponses: 15
    Dernier message: 21/03/2006, 13h01

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