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é dans toutes les langues.
J'invente un exemple, on crée une table client et une table type client.
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)
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érement n'est pas négociable. en effet la table client n'a pas de champ "langue" pour faire une vrai jointure.
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 joiture multiple mais ça plante à la requete (mais pas au démarrage du serveur).
Autrement peut-etre avoir une liste de type 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.
cdt
|