Per config.configure() zu switchen ist eher suboptimal (brauch wirklich lange, bei mir hier bei grad mal 30mappings > 5sec).
ich hab ein ähnliches Problem hier folgendermassen gelöst (db2 mit ~45schemas):
eine hibernate.cfg.xml, welche einmal beim Applikationsstart konfiguriert wird.
Das resultierende cfg-object wird in einer Pool-Klasse vorgehalten.
Die Pool-Klasse erzeugt die einzelnen SessionFactories indem sie das cfg-objekt nimmt, dynamisch die entsprechenden Properties setzt und danach aus dieser CFG die gewünschte Factory erzeugt, also z.B.:
Code:
cfg.setProperty("hibernate.default_schema", getSchema());
sessionFactory = cfg.buildSessionFactory();
Alles etwas vereinfacht, aber so ist ungefähr mein Vorgehen. Vielleicht hilfts dir ja irgendwie :-)
gruss,
Torsten