J'ai trouvé.
La solution est donc bien d'implémenter l'interface ConnectionProvider pour gérer soit meme les connexions JDBC. Dans cette classe, j'ai un attribut dbName accessible par des getters et setters.
Je mets dans le JNDI la SessionFactory :
http://www.hibernate.org/hib_docs/v3/reference/fr/html/session-configuration.html#configuration-sessionfactory
Je le récupère ainsi et je modifie mon dbName :
Code:
private void setConnectionProvider(int idCustomer) {
try {
InitialContext jndi = new InitialContext();
SessionFactoryImpl semf = (SessionFactoryImpl) jndi.lookup("masternautSessionFactory");
MasternautConnectionProvider conn = (MasternautConnectionProvider) semf.getConnectionProvider();
conn.setIdCustomer(idCustomer);
} catch (Exception e) {
e.printStackTrace();
}
}
et voila le tour est joué.