- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
不,这与 this one 不是同一个问题或this one或this one .
原因很简单,我的 *.hbm.xml 文件已经位于正确的目录中 (src/main/resources/com/corp/dept/proj
)。
此外,只要我在 HibernateUtil.java 中使用这个简单的静态方法静态地(即在构建时硬编码)从 hibernate.cfg.xml
获取所有内容,它就可以正常运行:
private static SessionFactory buildSessionFactory() {
try {
return new Configuration().configure("resources/hibernate.cfg.xml").buildSessionFactory();
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
但是由于我想将一些参数从 hibernate.cfg.xml
移动到要在运行时读取的属性文件(例如数据库的“connection.url”):
static {
try {
sessionFactory = buildHibernateConfig().buildSessionFactory();
} catch (Throwable ex) {
System.out.println("Initial SessionFactory creation failed: " + ex.getMessage());
throw new ExceptionInInitializerError(ex);
}
}
和
private static Configuration buildHibernateConfig() throws FileNotFoundException, IOException {
Properties properties = new Properties();
sConfig = new Configuration().configure("resources/hibernate.cfg.xml");
try {
properties.load(ServiceUtils.class.getResourceAsStream(MYWS_PROPS));
}
catch (IOException e) {
LOG.severe("Cannot find properties file " + MYWS_PROPS);
throw new SecurityException("Server Error: couldn't open " + MYWS_PROPS + " file");
}
/*hardcoded*/sConfig.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");/*hardcoded*/
/*hardcoded*/sConfig.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");/*hardcoded*/
sConfig.setProperty("hibernate.connection.url", properties.getProperty("dburl"));
// Add Hibernate XML mappings
sConfig.addClass(FooTbl.class);
return sConfig;
}
我遇到运行时异常:
Apr 03, 2014 14:31:49 AM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
Apr 03, 2014 14:31:49 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.6.Final}
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: resources/hibernate.cfg.xml
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: resources/hibernate.cfg.xml
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: resources/com/corp/dept/proj/FooTbl.hbm.xml
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration addClass
INFO: HHH000221: Reading mappings from resource: com/corp/dept/proj/FooTbl.hbm.xml
Apr 03, 2014 14:31:49 AM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: com/corp/dept/proj/FooTbl.hbm.xml
Initial SessionFactory creation failed: resource: com/corp/dept/proj/FooTbl.hbm.xml not found
Caused by: org.hibernate.MappingNotFoundException: resource: com/corp/dept/proj/FooTbl.hbm.xml not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:712)
at org.hibernate.cfg.Configuration.addClass(Configuration.java:757)
at com.corp.dept.proj.myws.HibernateUtil.buildHibernateConfig(HibernateUtil.java:141)
at com.corp.dept.proj.myws.HibernateUtil.<clinit>(HibernateUtil.java:56)
现在...在出现异常之前,日志显示已找到文件。我还验证了这些文件实际上包含在 WAR 文件中,位于与预期相同的子目录中。那么,为什么会出现此错误?
解决这个问题的推荐方法是什么?
最佳答案
获取配置 (sConfig) 实例后,您尝试错误地添加 XML 映射文档。由于您使用的是基于 XML 的映射文件 (.hbm),因此要添加 xml 映射文件,您需要使用 addResource() 方法,而不是 addClass() 方法。
addClass() 方法用于添加基于注释的映射。
所以替换
sConfig.addClass(FooTbl.class);
与
sConfig.addResource("com/corp/dept/proj/FooTbl.hbm.xml");
希望这能解决您的问题。
关于java - org.hibernate.MappingNotFoundException : resource: com/corp/dept/proj/FooTbl. hbm.xml 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846410/
我使用 Netbeans IDE。 我的 hibernate.cfg.xml 看起来像这样: //properties hibernate.cfg.xm
在 SpringMVC 的 src/main/resources 中,我有我的 hibernate.cfg.xml 我在 src/main/java org.david.model.UserDetai
我已关注this教程。 这是我的文件夹结构: 当我运行 App.Java 时,我得到: Initial SessionFactory creation failed.org.hibernate.Map
我是 Hibernate 的新手。我正在尝试运行一个简单的查询来查看给定的用户登录信息是否正确: public boolean checkLogin(String user, String pw) {
我的问题是: 现在我的 SPRING-CFG.xml 看起来像这样spring-cfg.xml
我正在尝试做一个简单的 hibernate 程序。我正在按照此 tutorial 中给出的步骤进行操作. 我得到的错误是 org.hibernate.MappingNotFoundExcepti
我正在尝试在 IntelliJ 的 Hibernate 控制台中运行 HQL 查询。我已将数据源添加到“数据源” View ,并将 hibernate.cfg.xml 添加到 Hibernate 方面
我有一个 Eclipse 动态 Web 项目,它托管一个简单的 servlet 并在 Tomcat 上运行。我在内部使用 Hibernate - 我在我的项目中有映射到数据库表和 hbm.xml 文件
JBoss AS 7.0.1.Final,Hibernate 3。我们有一个 MySQL 数据源。 我有指向 *hbm.xml 文件的映射资源。我收到部署错误,告诉我“资源:* hbm.xml 未找到
我一直在尝试用一个小例子来实现 hibernate 。 下面是我的hibernate.config.xml com.mysql.jdbc.Driver jdbc:mysql://loca
我尝试在 MYSQL 中连接,但在尝试添加配置下一个资源:hibernate.cfg.xml 时出现错误。并有下一个错误 org.hibernate.MappingNotFoundException:
我正在java中做hibernate示例。下面是使用的代码 Hibernate.cfg.xml com.mysql.jdbc.Driver root jdbc:mysql://local
我在测试该方法时遇到问题: org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines 信息: D
不,这与 this one 不是同一个问题或this one或this one . 原因很简单,我的 *.hbm.xml 文件已经位于正确的目录中 (src/main/resources/com/co
我是一名优秀的程序员,十分优秀!