Hibernate控制台应用程序中的异常

时间:2015-05-07 16:56:03

标签: java hibernate console-application

我有一个使用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)

1 个答案:

答案 0 :(得分:0)

我怀疑你的Hibernate配置不适合当前会话。

您缺少hibernate.current_session_context配置或在hibernate配置中使用以下属性

<property name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocal‌​SessionContext</property>

请使用以下属性

<property name="hibernate.current_session_context_class">thread</property>

有关Hibernate当前会话的更多信息,请访问此link