设为首页 加入收藏

TOP

Hibernate 5.2.x 中 sessionFactory 的获取方式
2018-01-22 17:24:51 】 浏览:200
Tags:Hibernate 5.2.x sessionFactory 获取 方式

版本:Hibernate 5.2.12(2017-11-1测)


起因:Hibernate 4.3 中通用的Configuration.buildSessionFactory()方法过时(Deprecation)。


参考:官网文档 3.2.4. Building the SessionFactory


最新版工具类 HibernateUtils 代码:


public class HibernateUtils {
 private static SessionFactory sessionFactory;
 private static SessionFactory buildSessionFactory(){
  StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure().build();
  sessionFactory = new MetadataSources(ssr).buildMetadata().buildSessionFactory();
  return sessionFactory;
 }
 public static SessionFactory getSessionFactory(){
  return (sessionFactory==null ? buildSessionFactory() : sessionFactory);
 }
 public static Session openSession(){
  return getSessionFactory().openSession();
 }
}


对比 Hibernate 4.3 版代码:


public class HibernateUtils {
 private static SessionFactory sessionFactory;
 private static SessionFactory buildSessionFactory(){
  sessionFactory = new Configuration().configure().buildSessionFactory();
  return sessionFactory;
 }
 public static SessionFactory getSessionFactory(){
  return (sessionFactory==null ? buildSessionFactory() : sessionFactory);
 }
 public static Session openSession(){
  return getSessionFactory().openSession();
 }
}


注意事项:


1、最新版第 5 行与下句等效:


sessionFactory = new MetadataSources(ssr).getMetadataBuilder().build().getSessionFactoryBuilder().build();


2、配置文件 hibernate.cfg.xml 默认在 /src 目录下。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇程序员的情人节应该这么优雅度过.. 下一篇JavaWeb Response提供文件下载功能

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目