hibernate Annotation配置找不到我的xml文件

时间:2011-04-04 15:58:41

标签: java hibernate

我有一些使用hibernate的继承代码。我收到以下错误:

Caused by: org.hibernate.HibernateException: C:\dev\wk\rs.110-AQU-120.cca.cca-ui\main\config\hibernate\DEV\master.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1402)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1424)
    at com.cca.persistence.HibernateUtil$Parameters.<init>(HibernateUtil.java:96)
    at com.cca.persistence.HibernateUtil.<clinit>(HibernateUtil.java:137)
    ... 4 more

调用AnnotationConfiguration()#configure(String configurationFile);时发生这种情况 但该文件确实存在。为什么休眠无法找到它?

2 个答案:

答案 0 :(得分:1)

您的资源的路径不能是绝对路径(C:\dev\wk\rs.110-AQU-120.cca...),它必须是应用程序中的相对路径,例如包名称!

原因是,org.hibernate.util.ConfigHelper.getResourceAsStreamClassLoader.getResourceAsStream(<resourceName>)加载了资源。

有关详细信息,请查看ClassLoader.getResourceAsStreamClassLoader.getResource

答案 1 :(得分:1)

如果您想在自定义位置配置文件,可以将AnnotationConfiguration转换为Configuration,并提供File作为参数,例如:

((Configuration) cfg).configure(new File(System.getProperty("user.dir") + "/config/hibernate.cfg.xml"));