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 :

Tables de paramètre multi langue - problème de mapping


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 37
    Points : 33
    Points
    33
    Par défaut Tables de paramètre multi langue - problème de mapping
    Bonjour,

    Je suis sur un projet où mon application java web est en multi langue.

    Nous avons des tables de paramètre qui sont utilisées pour les listes déroulantes... et les libellés sont gérés dans toutes les langues.

    J'invente un exemple, on crée une table client et une table type_client avec leur BO respectifs.

    La table client :
    id - Long (clé primaire)
    nom - String
    prenom - String
    type_client - Long

    La table type_client :
    id - Long - (clé multiple)
    id_langue - Long - (clé multiple)
    libelle - String

    La table type_client ne respecte pas les normes de jointures SQL puisque je ne peux pas créer de clé étrangère qui va de
    client à type_client et refaire les tables différemment n'est pas autorisé. en effet la table client n'a pas de champ "langue" pour faire une vrai jointure. La langue je l'ai dans une variable de session

    pour mes requêtes sql si je veux afficher une liste de client avec le libellé de son type et dans la langue de l'appli, je n'ai aucun problème pour l'écrire et la langue je l'obtiens via une variable de session.

    Par contre j'ai l'obligation de l'écrire en HQL. Et les choses se compliquent.

    Avez-vous une solution pour que je puisse lier via les fichiers hbm ces 2 tables sachant comme je l'ai précisé j'ai la langue au moment de l'appel à la méthode dao.

    sur le fichier de mapping pour client j'ai essayé de créer un champ "langue" sans pointer sur une colonne pour faire une jointure multiple
    mais ça plante à la requête (mais pas au démarrage du serveur).

    Autrement peut-etre avoir une liste de type_client dans toutes les langues dans "client" mais je ne sais pas l'écrire dans le hbm ni comment faire la requête HQL pour exploiter que le premier de la liste.


    merci pour vos réponses car pour le moment je vais devoir boucler mon premier résultat et refaire un requête pour chaque ligne afin d'avoir le libellé dans la bonne langue. C'est frustrant en terme de performance.

    cdt

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Salut,

    Citation Envoyé par arnovodao Voir le message
    C'est frustrant en terme de performance
    C'est pourquoi je n'ai jamais mis la traduction de mes libelles dans la base de données...
    Dans les applications sur lesquelles je travaille, la traduction est faite en javascript. J'ai des fichiers JSON avec des pairs clés valeurs pour chaque langue.

    Au pire, on peut aussi utiliser des fichiers de propriétés coté serveur mais pas dans la base de données!

    Désolé si je ne réponds pas à ta question...

  3. #3
    Membre actif
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Points : 271
    Points
    271
    Par défaut
    Bonjour,

    je n'apporte pas de réponse non plus. Sans plus d'infos sur les mappings que tu as fait et les erreurs que tu rencontres (stacktrace,...), on pourra difficilement te guider.

    Par contre si ton application doit gérer que quelques langues basiques (anglais, espagnol, français) et que c'est une application web, pourquoi n'utilises-tu pas un ResourceBundleMessageSource avec Spring (voici un exemple de tuto) ? Tu peux l'injecter dans tes autres beans (envoi de mails traduits,...) et l'utiliser via le tag spring dans les jsp.

    La DB, c'est bien quand on doit gérer des langues "exotiques" (grec, suédois, croate,...), mais la mise-en-place dans ces cas n'est pas évidente à faire (grammaire, gestion des dates, texte à trous,...). Si tu comptes toujours utiliser la DB, n'oublies pas de mettre du cache.

    Je viens de trouver un tuto sur developpez qui mixe ResourceBundle et DB. Peut-être une autre piste pour toi.

    Cdlt,

Discussions similaires

  1. Problème rapport multi-langues
    Par e1230 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 24/02/2009, 09h31
  2. [Java][Multi-langues][Swing] Deux problèmes
    Par mavina dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 09/09/2008, 03h50
  3. Réponses: 4
    Dernier message: 04/02/2008, 16h35
  4. Problème de map avec paramètre template
    Par bouba dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2007, 13h19
  5. Problème site multi langues
    Par dolf13 dans le forum Langage
    Réponses: 9
    Dernier message: 31/08/2006, 12h05

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