标签:des style io ar os sp java on bs
源码:
public SessionFactory buildSessionFactory() throws HibernateException {
Environment.verifyProperties( properties );
ConfigurationHelper.resolvePlaceHolders( properties );
final ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings( properties )
.build();
setSessionFactoryObserver(
new SessionFactoryObserver() {
@Override
public void sessionFactoryCreated(SessionFactory factory) {
}
@Override
public void sessionFactoryClosed(SessionFactory factory) {
( (StandardServiceRegistryImpl) serviceRegistry ).destroy();
}
}
);
return buildSessionFactory( serviceRegistry );
}
我获取sessionFactory的方式:
package util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
/**
* @author guozhenzhen
*
*/
public class HibernateUtil {
private static final SessionFactory sf = buildHibernateSessionFactory();
private static SessionFactory buildHibernateSessionFactory() {
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.build();
return cfg.buildSessionFactory(serviceRegistry);
}
public static SessionFactory getSessionFactory() {
return sf;
}
}
可以看得出来是少了一个applySettings方法,把属性都设置进去。
修改如下以后,hibernate可以正常工作了:
package util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
/**
* @author guozhenzhen
*
*/
public class HibernateUtil {
private static final SessionFactory sf = buildHibernateSessionFactory();
private static SessionFactory buildHibernateSessionFactory() {
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build();
return cfg.buildSessionFactory(serviceRegistry);
}
public static SessionFactory getSessionFactory() {
return sf;
}
}
继续运行hibernate小例子:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
出现异常:No CurrentSessionContext configured!
标签:des style io ar os sp java on bs
原文地址:http://my.oschina.net/guozhenzhen/blog/350675