Hibernate4 中 Configuration.buildSessionFactory() 的方法已經標記爲過期,官方建議使用:buildSessionFactory(ServiceRegistry serviceRegistry) 這個方法來獲取 SessionFactory。估計是和新特性支持多租戶有關(沒有深刻了解,猜想而已)。Hibernate4中獲取SessionFactory的方法示例以下:java
HibernateTest.javasession
1 package com.micmiu.hibernate; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6 import org.hibernate.service.ServiceRegistry; 7 import org.hibernate.service.ServiceRegistryBuilder; 8 9 import com.micmiu.hibernate.anno.entity.User; 10 11 /** 12 * 13 * @author <a href="http://www.micmiu.com">Michael Sun</a> 14 */ 15 public class HibernateTest { 16 17 public static void main(String[] args) { 18 Configuration configuration = new Configuration().configure(); 19 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() 20 .applySettings(configuration.getProperties()) 21 .buildServiceRegistry(); 22 SessionFactory sessionFactory = configuration 23 .buildSessionFactory(serviceRegistry); 24 Session session = sessionFactory.getCurrentSession(); 25 session.beginTransaction(); 26 27 User user = new User(); 28 user.setLoginName("micmiu.com"); 29 user.setName("Michael"); 30 31 session.save(user); 32 33 session.getTransaction().commit(); 34 session.close(); 35 sessionFactory.close(); 36 37 } 38 }
StandardServiceRegistryBuilder
便可:
app
1 Configuration config = new Configuration().configure(); 2 ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() 3 .applySettings(config.getProperties()).build(); 4 sessionFactory = config.buildSessionFactory(serviceRegistry);