我正在尝试创建一个示例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,那么为什么它要求相同,我错过了什么?。
答案 0 :(得分:0)
您调用方法configure
,其文档提供以下信息:
使用名为hibernate.cfg.xml的应用程序资源中指定的映射和属性。
如果您不想使用此文件,请在不调用configure
的情况下创建会话。
Session s = cfg.buildSessionFactory().openSession();
顺便说一句,AnnotationConfiguration
来自Hibernate 3. Hibernate 4和5没有这个类,因此考虑updating你当前的hibernate版本。