2015-03-03 4 views
0

Je souhaite créer une fabrique de sessions partagée par tous les utilisateurs de la base de données système. Comme l'atelier de session est un composant lourd, il n'est pas correct de le créer à chaque fois que l'utilisateur se connecte à l'application.Hibernate Session factory partagée par les utilisateurs de la base de données système

Mon scénario est que, j'ai une application qui est la connexion par les utilisateurs de base de données du système, c'est-à-dire les utilisateurs de la base de données Mysql pas par les utilisateurs de l'application. J'ai donc besoin d'une usine de session qui ne peut être créée qu'une seule fois et utilisée par tous les utilisateurs de la base de données du système.

Est-il possible de faire cela?

Répondre

1

Oui, c'est possible. vous pouvez créer une classe ayant un objet statique de SessionFactory. Supposons que cette classe ait un bloc static afin qu'il ne s'exécute qu'une seule fois au moment où la classe est chargée dans JVM. Dans ce bloc static, vous devez initialiser SessionFactory et lorsque vous voulez utiliser sessionFactory, vous pouvez appeler l'objet getter de sessionFactory.

public final class SessionFactoryHelper { 

    private static SessionFactory sysDBUserSessionFactory; 

    static { 
     try { 
      // initialize the sysDBUserSessionFactory object. 
     } catch (Exception e) { 
      //exception handling 
     } 
    } 

    public static SessionFactory getsysDBUserSessionFactory() { 
     return sysDBUserSessionFactory; 
    } 
} 

Chaque fois que vous voulez sessionFactory pour les utilisateurs de la base de données du système utilisent:

SessionFactory sessionFactory = SessionFactoryHelper.getsysDBUserSessionFactory(); 
+0

Thanx bro. Laissez-moi essayer votre approche. – Balkrushn

+0

J'ai beaucoup d'utilisateur de base de données système. Donc, je suis confus par quel utilisateur je construis ma fabrique de sessions? – Balkrushn

+0

Non, la création d'une session est effectuée au moment où la classe 'SessionFactoryHelper' est chargée dans la machine virtuelle Java. Vous n'avez donc pas besoin de vous inquiéter lorsque la fabrique de sessions doit être construite, elle se construit au moment du chargement de l'application. – Amogh