在hibernate5 中创建 SessionFactory 的方式其实是非常灵活的,但是最通俗的做法就是分为以下 3 个步骤:
// 1. 创建一个 ServiceRegistry 对象: hibernate 4.x 以后新添加的对象
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
// 2. 创建 MetadataSources
MetadataSources sources = new MetadataSources( registry );
//.addResource( "edu/hebtu/hibernate5/News.hbm.xml" ) 添加 .hbm.xml 映射文件
//.addAnnotatedClassName( "edu.hebtu.hibernate5.User" ); 添加 POJO Domain Models 注解
// 3. 创建sessionFactory 对象
SessionFactory SessionFactory = sources.buildMetadata().buildSessionFactory();
StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
.configure().build();
Metadata metadata = http://jisonami.iteye.com/blog/new MetadataSources(standardRegistry)
.getMetadataBuilder()
.applyImplicitNamingStrategy(
ImplicitNamingStrategyJpaCompliantImpl.INSTANCE)
.build();
SessionFactory sessionFactory = metadata.getSessionFactoryBuilder().build();
而Hibernate 5.1 的获取SessionFactory的方法
StandardServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().configure().build();
SessionFactory sessionFactory=new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();