Exception in thread "main" org.hibernate.HibernateException:
com.hibernate.config.hibernate.cfg.xml not found at
org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) at
org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2176) at
org.hibernate.cfg.Configuration.configure(Configuration.java:2157) at
com.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:15) at
com.hibernate.dao.StudentDAOImpl.insertStudent(StudentDAOImpl.java:14) at
Main.main(Main.java:9)
为什么会出现此错误?任何人都可以指出我的错误吗?
答案 0 :(得分:0)
Hibernate XML配置文件hibernate.cfg.xml
始终放在项目类路径的根目录中,位于任何包之外。如果将此配置文件放在不同的目录中,则可能会遇到错误:
Exception in thread "main" org.hibernate.HibernateException:
com.hibernate.config.hibernate.cfg.xml not found
要告诉Hibernate在其他目录中查找hibernate.cfg.xml
,您需要通过将SessionFactory
文件路径作为参数传递到其中来修改默认的Hibernate' hibernate.cfg.xml
类。 configure()
方法:
SessionFactory sessionFactory = new Configuration()
.configure("/path to file/hibernate.cfg.xml")
.buildSessionFactory();
return sessionFactory;
使用Maven:
使用maven,您的hibernate.cfg.xml
文件应位于src/main/resources
。如果将其放在src
文件夹中,那么它在运行时将无法用于CLASSPATH。
由于您使用的是Eclipse,请确保src/main/resources
文件夹位于项目首选项的构建路径配置中。
答案 1 :(得分:0)
您在会话工厂创建中指定的hibernate配置文件的路径应该相对于类路径。 因此,如果您在编译时编译进入构建目录,那么您的config xml路径应该相对于该路径。