Hibernate4中buildSessionFactory方法废弃解决

在用Hibernate4时会发现:
[java]  view plain copy
  1. SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

buildSessionFactory()废弃,相信很多人会觉得为什么废弃这方法,查了网上的资料,综合如下:


     Hibernate给了个ServiceRegistry,然后拿到sessionFactory是通过:

[java]  view plain copy
  1. <span style="font-size:18px;">  @BeforeClass  
  2.     public static void beforeClass() {  
  3.         Configuration configuration = new Configuration();  
  4.         //new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);  
  5.         //sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();  
  6.         ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();  
  7.         SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);  
  8.     </span>  

当我用hibernate 4.3.4版本时buildServiceRegistry()方法也被废弃。

所以采用

Configuration configuration = new Configuration().configure();  
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()//
        .applySettings(configuration.getProperties()).build(); 
        SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);  
		Session session=sessionFactory.openSession();
		List<ClientArticle> list = session.createQuery("from ClientArticle").list();



像网友说的具有注册表存储库功能,功能更多了,上面的方法废弃,其实是hibernate想你用这个类,因为他们写了个更好的东西出来。原来是这样。其实里面的源码还是:

[java]  view plain copy
  1. <span style="font-size:18px;">package cn.framework.dao.util;  
  2. import org.hibernate.HibernateException;  
  3. import org.hibernate.SessionFactory;  
  4. import org.hibernate.cfg.Configuration;  
  5. import org.hibernate.service.ServiceRegistry;  
  6. import org.hibernate.service.ServiceRegistryBuilder;  
  7. public class HibernateUtil {  
  8.    
  9.  public static SessionFactory sessionfactory = null;  
  10.  static {  
  11.   try {  
  12.    // 通过hibernate.cfg.xml 产生一个SessionFactory  还是和原来的方法一样的。。  
  13.    sessionfactory = new Configuration().configure().buildSessionFactory();  
  14.   } catch (Throwable ce) {  
  15.    ce.printStackTrace();  
  16.   }  
  17.  }</span>  

还是用到我们上面所谓的废弃的方法。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值