hibernate.cfg.xml到java配置

时间:2017-12-29 10:15:09

标签: java hibernate

我正在尝试创建一个示例hibernate程序,我有基于xml的hibernate配置的工作代码,因此尝试在注释和基于java配置的情况下转换它。 我成功地将Employee.hbm.xml转换为注释(Employee.class中的@Entity),但不能对hibernate.cfg.xml执行相同的操作。

Configuration cfg = new AnnotationConfiguration().addAnnotatedClass(com.hibernate.apple.Employee.class);
    cfg.setProperty("hibernate.hbm2ddl.auto","update");
    cfg.setProperty("hibernate.connection.driver_class","com.mysql.jdbc.Driver");
    cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
    cfg.setProperty("hibernate.connection.url","jdbc:mysql://localhost/DataBase");
    cfg.setProperty("hibernate.connection.username","xxx");
    cfg.setProperty("hibernate.connection.password","xxx");
Session s = cfg.configure().buildSessionFactory().openSession();
    Transaction t = s.beginTransaction();
    t.begin();
....

但是给出错误

Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml not found

上面的代码是替换hibernate.hbm.xml,那么为什么它要求相同,我错过了什么?。

1 个答案:

答案 0 :(得分:0)

您调用方法configure,其文档提供以下信息:

使用名为hibernate.cfg.xml的应用程序资源中指定的映射和属性。

如果您不想使用此文件,请在不调用configure的情况下创建会话。

Session s = cfg.buildSessionFactory().openSession();

顺便说一句,AnnotationConfiguration来自Hibernate 3. Hibernate 4和5没有这个类,因此考虑updating你当前的hibernate版本。