Salut ,
je suis débutant en hibernate et j'ai un petit pb que j'ai as pu résoudre.en effet je travaille sur une application web qui utilise plusieurs base de données identiques(chaque client a sa propre base).
dans ma sessionFactory je parametre moi même la configuration (je n'utilise pas de fichier de configuration) en utilisant ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
public class HibernateSessionFactory {
 
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private static Configuration configuration = new Configuration();
    private static org.hibernate.SessionFactory sessionFactory;
    private static String url="gabirich";
 
 
    static {
        try {
            BuildConfiguration(url);
            sessionFactory = configuration.buildSessionFactory();
        } catch (Exception e) {
            System.err.println("%%%% Error Creating SessionFactory %%%%");
            e.printStackTrace();
        }
    }
 
    public static String getUrl() {
        return url;
    }
 
    public static void setUrl(String url) {
        HibernateSessionFactory.url = url;
    }
public static void BuildConfiguration(String url) throws HibernateException {
        //Fichiers hbm de la base de données
        configuration.addResource("hibernateHBM/TypeBiens.hbm.xml");
        .....
.....
....
//propriétes da la connexion
        configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
        configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
        configuration.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/"+url);
        configuration.setProperty("hibernate.connection.username", "root");
        configuration.setProperty("hibernate.connection.password", "root");
    }
dans la phase d'identification le client doit entrer son login, mot de passe et le nom de l'agence(qui est le nom de sa BD)
voici un extrait du code de login :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public String connecter() {
 
        String etat = null;
// test1 est le nom de la BD
        HibernateSessionFactory.setUrl("test1");
        System.out.println("*****_____________________*****");
        System.out.println(HibernateSessionFactory.getUrl());
        System.out.println("*****_____________________*****");
        Session session1 = HibernateSessionFactory.currentSession();
        System.out.println("*********Configuration****************");
        System.out.println(hibernateFactory.HibernateSessionFactory.getConfiguration().getProperty("hibernate.connection.url"));
mon probléme est que le variable url change de valeur avec la méthode setUrl() mais dans la méthode buildconfiguration() il ne change pas de valeur ( il reste toujours gabirich et non pas test1)
est ce que vous pouvez m'aider???