我有一个使用Hibernate构建的简单控制台应用程序。当我运行它时会引发异常,我不知道问题是什么。
我的代码是:
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.classic.Session;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class TestEmployee {
public static void main(String[] args) {
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(Employee.class);
config.configure("hibernate.cfg.xml");
new SchemaExport(config).create(true, true);
SessionFactory factory = config.buildSessionFactory();
Session session = factory.getCurrentSession();
session.beginTransaction();
Employee tom = new Employee();
mehdi.setEmpId(100);
mehdi.setEmpName("Tom Hani");
session.save(mehdi);
session.getTransaction().commit();
}
}
例外是:
线程中的异常" main" org.hibernate.HibernateException:没有配置CurrentSessionContext! 在org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685) 在com.Hibernate.chapter1.TestEmployee.main(TestEmployee.java:20)
答案 0 :(得分:0)
我怀疑你的Hibernate配置不适合当前会话。
您缺少hibernate.current_session_context配置或在hibernate配置中使用以下属性
<property name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>
请使用以下属性
<property name="hibernate.current_session_context_class">thread</property>
有关Hibernate当前会话的更多信息,请访问此link。