请考虑以下声明:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
其中:
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
如何指定Hibernate将从中检索配置数据的文件? 解释一下,我有一个带有正确配置数据的hibernate.cfg.xml,但在运行时hibernate抛出错误引用其他项目的配置,如:
org.hibernate.MappingNotFoundException: resource: xx/AnotherNonRelatedProject/CertainClass.hbm.xml not found
无论如何,我猜测默认配置是从另一个文件传来的。但我搜索了我的hbm.xml文件,类和引用,似乎没问题。
关于这里会发生什么的任何想法?
Eclipse:Indigo SR2; Hibernate工具:3.5.1
谢谢!
答案 0 :(得分:1)
如果要设置自己的Hibernate配置,则必须使用以下内容:
private static final SessionFactory sessionFactory;
static {
try {
// Create your SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure(new File("hibernate1.cfg.xml"))
.buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
最好的问候:)
答案 1 :(得分:0)
我正在回答我自己的问题,因为我发现了我的具体问题,我认为这是问题的另一个问题:
由于我的应用程序是基于Web的,因此Tomcat的lib文件夹中有一个来自另一个项目的.jar文件,该文件存在hibernate配置问题。因为Hibernate检查与某个项目相关的所有依赖项(包括所有.jar),其中包括Tomcat的lib中的所有jar。因此,在运行时期间会出现异常(当时对我来说完全陌生)。解决.jar文件的hibernate配置问题或从Tomcat的lib文件夹中删除它们(如果没有必要)可以解决问题。