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

Hibernate Java Discussion :

[CONCEPTION] Internationnalisation avancée


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut [CONCEPTION] Internationnalisation avancée
    Bonjour,

    J'aimerais vous soumettre un problème de conception auquel je suis confronté.
    J'espère que votre expérience en la matière pourra m'aider.

    Je travaille sur un projet qui necessite la gestion de plusieurs langues dans le système d'information.
    J'aimerais simplement signaler qu'il ne s'agit pas ici du besoin sommaire d'internationnaliser l'UI mais directement les données stockées.

    Je vais essayer de prendre un exemple simple.
    Je possède, dans mon SI, une entité Objet.
    Cet objet dispose de caractéristiques non soumises à internat. :
    - un identifiant alpha (ex: F16)
    - une date de création (4564787484 ts)
    - un poids (1000 kg)
    - une taille (12 m)

    Il dispose aussi de données internat. :
    - nom commun
    - description

    Mon système possède un nombre de langues variables. Ces deux dernières propriétés, doivent pouvoir être initialisées dans la langue choisie au moment du chargement de mon Objet. L'instance d'Objet ne sais pas en quelle langue elle est décrite, seul l'environnement connait la langue.
    Imaginez une boutique en ligne ou chaque objet du système possède une description dans la langue de l'utilisateur.

    Du point de vue persistence, je possède 2 tables :
    Objet (CodeObjet, Identifiant, DateCreation, Poids, Taille)
    ObjetDescription (CodeObjet, CodeLangue, Nom, Description)

    1/ Quel est la meilleure solution pour demander à hivernate de charger l'Objet (CodeObjet=1) avec la langue (CodeLangue=2) sans pour autant que le mapping hibernate considère que l'identifiant de Objet est composite (CodeObjet, CodeLangue) car ce n'est pas le cas ?

    2/ Dois-je passer par un Critéria pour spécifier la langue de la requête au moment du chargement de mon Objet ?

    3/ Dois-je utiliser la composition et créer une classe ObjetDescription ?

    Merci de votre aide.

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu peux créer une classe ObjetDescription comme tu l'as dit et la mapper à ta classe Objet.
    Tu pourras initialiser la description via une requête Criteria ou HQL en fonction de la langue passée en paramètre.
    Voilà le plus simple.
    A voir s'il n'y a pas mieux.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    Merci de ta réponse.
    J'ai fait un essai avec Criteria. J'arrive à charger mon contexte internationnalisé pour tous mes objets.

    Seulement, j'ai abandonné ma classe ObjetDescription.
    Maintenant j'ai Objet dont les propriétés sont initialisées dans la langue voulue.

    Merci.

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

Discussions similaires

  1. Conception ajax avancée (tree, drag & drop, Screw)
    Par tigunn dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 07/02/2012, 12h39
  2. Réponses: 2
    Dernier message: 26/02/2008, 16h29

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