SessionFactory中保存了当前数据库配置的所有映射关系,同时也负责维护当前的二级缓存和StatementPool,由于SessionFactory采用了线程安全的设计,可由多个线程并发访问,大多数情况下,一个应用针对一个数据库共享一个SessionFactory。如果应用中需要访问多个数据库,那么针对每个数据库,都为其分别创建对应的SessionFactory实例。
SessionFactory的获取
configuration为Configuration的实例
1、Hibernate 4.1版本之前
SessionFactory sessionFactory = configuration.buildSessionFactory();
2、 Hibernate 4.1版本之后
4.1版本之后,原来的获取方法标记为了@Deprecated
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
SessionFactory sessioinFactory = configuration.buildSessionFactory(serviceRegistry);