Je souhaiterais mettre en place un routage de sessionFactory mais je ne sais pas par où commencer. Quelq'un pourrait-il me donner quelques élèments car je n'ai rien trouver sur google.
Merci
Je souhaiterais mettre en place un routage de sessionFactory mais je ne sais pas par où commencer. Quelq'un pourrait-il me donner quelques élèments car je n'ai rien trouver sur google.
Merci
En fait, l'entreprise pour laquelle je travaille veut déployer une seule application.
Les utilisateurs se connectant à celle ci sont router vers une base ou une autre suivant leur profil.
Dans un premier temps, j'ai utilisé le routage de datasource, comme décrit ici http://blog.interface21.com/main/200...ource-routing/. Cependant, ceci ne marche uniquement que si les tables des deux bases de données ont le même nom, et appartiennent au même schémas. Après le développement complet de l'application, il s'avère que le nom des tables, ainsi que leur shéma peuvent être différent d'une base à l'autre (chose qui n'a pas été dit avant)
L'entreprise voulant absolument ne deployer qu'une seule application, je souhaiterai effectuer un routage de session de factory (ce qui me permettrai d'etre totalement indépendant du MPD). J'utilise le framework Spring 2.0, et le routage de Session Factory n'est pas natif dans Spring.
Je sais cependant qu'il y a moyen de se débrouiller en utilisant différentes astuces (notamment l'interface InvocationHandler, les factoryBean...). Avez vous déja utilisé le routage de sessionFactory.
En pratique : je suis un utilisateur belge, ma session factory pointe vers une base de données belge. Par code, je précise le nom des schémas, et des fichiers belges.
je suis un utilisateur francais, ma session factory pointe vers une base francaise. Par code, je précise le nom des schémas, et des fichiers francais.
...
Je suis en train d'avoir un problème similaire sur un autre poste (http://www.developpez.net/forums/sho...66#post2554766) même si ma problématique n'est pas de la même ampleur.
Tu dis que les tables dans les bases n'ont pas les mêmes noms, cela implique donc un mapping d'Hibernate différent, non ? Les différences au niveau de ton application s'arrêtent-elles au niveau du mapping, ou remontent-elles plus haut (la couche DAO, la couche Métier) ?
Une idée serait, en fonction du profil de ton utilisateur (que tu dois pouvoir déterminer très haut dans ton architecture) de faire appel à l'une ou l'autre des couches métier (ou DAO). Un simple IF dans une des premières classes appelées permettrait ainsi d'appeller un bean ou un autre, configuré avec une sessionFactory différente par Spring.
Ceci dit, étant encore peu expérimenté dans des architectures d'envergure, je suis peut-être complètement à côté de la plaque...
En fait, on peut modifier les fichiers de mapping par code (nom des schémas et tables). Dans mon cas précis, il n'y aura juste que le nom des schémas qui pourront etre modifié. En finalité, il y aura une base de donnée avec une nom de table associé à un nom de schéma, et par code, on précisera le nom du shéma dans tous les fichiers de mapping hbm.
Ta réponse n'est pas dénuer de sens, au contraire. Mais on ne veut pas doubler les couches DAO. La seule chose qui change d'un profil et d'un autre est la sessionFactory déclaré via Spring MVC.
Oui, je me doute que doubler les DAO n'est pas forcément la solution qui sera la première à être mise en avant (bizarrement)J'espérais simplement que l'application soit déjà suffisament dissociée pour pouvoir faire ce genre de chose...
Mais étant donné que ce n'est pas le cas, je crois que je ne vais pas pouvoir apporter mon aide plus loin. Désolé.
Partager