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 :

Gérer des traductions depuis la db


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Gérer des traductions depuis la db
    Bonsoir à tous,
    Je suis en train de tester hibernate pour migrer une application JSF existante et je suis bloqué par le mécanisme de traduction à mettre en place. Voici ma situation:

    Table "Category"
    oid int;
    shortname varchar(12);
    translation_oid (int);

    Table "Translation"
    oid int;
    language char(2);
    translation varchar(255);

    A l'exécution, je connais bien entendu la langue en cours (celle de l'utilisateur), et je souhaite que les beans Category soient peuplés avec la "bonne" translation:
    public class Category extends BusinessObject {
    public int oid;
    String shortName;
    String translation;
    }

    Toute idée, piste, ou mieux exemple, est le bienvenu!

    D'avance un grand merci
    David

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Et si tu nous expliquait à quoi correspondent tes tables et tes champs, et comment il sont liés (clés étrangères)?...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut explication supplémentaire
    Bien sûr...
    Voici par exemple un record de la table "Category"
    oid = 1; shortName = 'compu'; translation_oid = 1 (la pk de cette table étant le champ oid).

    Voici les records correspondants dans la table "Translation":
    oid = 1; language = "FR"; translation = "Ordinateur"
    oid = 1; language = "EN", translation = "Computer"
    Dans cette table, vous l'aurez compris, la PK comprend les champs oid et language.

    Il faut donc faire le lien entre Category.translation_oid et Translation.oid en tenant compte de la langue courante qui doit être mappée avec la colonne Translation.language.

    Dans mon application JSF, je connais via un session bean la langue de l'utilisateur, et je souhaite que les beans Category aient leur attribut "translation" rempli dans la bonne langue. Donc si la langue courante est "FR" et que la catégorie 1 est demandée:

    public class Category extends BusinessObject {
    public int oid -> 1
    String shortName -> "compu"
    String translation -> "Ordinateur"
    }

    Voilà, j'espère que c'est plus clair et que quelqu'un pourra m'aider...
    D'avance merci,
    David

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Et tu veux faire quoi ? Une requête HQL pour récupérer le bean Category ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Ce que je souhaite...
    Compte tenu de la structure de la db expliquée ci-dessus, je souhaite trouver simple, efficace et générique pour que objets soient instantiés avec les bonnes traductions.

    Je n'ai pas d'idée préconçue de la solution, mais j'aimerais éviter de modifier toutes les classes DAO pour ajouter du code HQL (jointure avec la table "Translation", utilisation d'un paramètre "language", etc...), sinon, çà va ressembler furieusement à la solution actuelle (POJO + jdbc).

    N'est-il pas possible, par exemple, de modifier le mapping au moment de l'exécution? Cela reviendrai à définir une relation many_to_one avec un paramètre dynamique... ou à mettre (dynamiquement) un filtre sur la table "Translation".

    Une autre piste serait de remplir pour chaque instance de l'objet une liste avec les traductions, mais cela semble un peu lourd... D'autant plus que certains objets ont plusieurs attributs traduits.

    J'ai également trouvé un post sur le web où une solution à mon problème est proposée en utilisant un UserType, mais malheureusement je ne comprend pas (encore) le mécanisme: http://blog.hibernate.org/cgi-bin/bl...004/06/23#i18n

    Bref, vous l'aurez compris, mon faible niveau d'expertise Hibernate ne me permet pas d'être beaucoup plus précis... Merci d'autant plus pour votre aide!

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/09/2014, 17h54
  2. Comment (si possible) gérer des dll en Asm?
    Par @drien dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 06/01/2004, 15h59
  3. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 13h44
  4. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 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