在Hibernate 4之前
会话连接的实现方式仅适用于SessionFactory。
示例:
Configuration cfg=new Configuration();
Configuration cfg=cfg.configure(“mysql.cfg.xml”);
SessionFactory sf=cfg1.buildSessionFactory();
Hibernate 4.0,4.1,4.2
它随着ServiceRegistry的概念而改变,实现的方式是使用ServiceRegistry&会话工厂。
示例:
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
Hibernate 4.3
ServiceRegistryBuilder()也已弃用,并替换为StandardServiceRegistryBuilder()。
示例:
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
我的问题是:
答案 0 :(得分:0)
您可以通过两种方式访问 SessionFactory 对象
首先:
StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
.configure("hibernate.cfg.xml").build();
Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();
SessionFactory factory = meta.getSessionFactoryBuilder().build();
第二个:
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
它们都使用 StandardServiceRegistry,但第二个较短并且在 configure() 方法中使用 StandardServiceRegistry 而您在代码中看不到它