以前在3.x中使用的 new AnnotationConfiguration().configure.buildSessionFactory()
在4.x版本中不能使用,已经被废弃,下面是文档给的方法。
new Configuration().configure().buildSessionFactory(
new StandardServiceRegistryBuilder().build() );
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
发现也用不了,没有那个类。但有那个类的子类。经过自己查询,勉强找到一种方法
package com.ssh.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateUtil {
private static SessionFactory sf;
static{
Configuration cfg = new Configuration();
cfg.configure();
sf = cfg.buildSessionFactory(new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry());
}
public static SessionFactory getSessionFactory(){
return sf;
}
}
在4.3.5中貌似有那个包的那个方法的API。
用junit测试可以通过,但与struts2结合后,在网页访问,运行这句时
Configuration cfg = new Configuration();
报错:Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration。。。。
首先检查自己是否少包,多包。
没有以上错误。
苦死冥想啊,,,然后把hibernate引用的jar包全删了,再加上也不行。
最后把hibernate的jar包全删了,拷贝到lib目录下面,竟然好了。。。。大家可以试一试。
我想以后还是少引用的好,移植起来也是比较麻烦的。