当前位置: 首页 > 知识库问答 >
问题:

从其他JAR添加映射资源

车思淼
2023-03-14

我有一个jar文件,其中有一些映射文件,我想添加作为hibernate.cfg.xml中的映射资源,因为我在org.hibernate.cfg.comfiguration中添加了jar。

    Configuration cfg=new Configuration();
    cfg.addJar(new File("C:\\Users\\amoghs\\.m2\\repository\\mkcl\\os\\personServiceBL\\1.0.1\\personServiceBL-1.0.1.jar"));
    cfg.configure("hibernate.cfg.xml");
    SchemaExport se=new SchemaExport(cfg);
    se.setDelimiter("\n#-----------------------------------------------------------------------------------");
    se.setOutputFile("E:\\ADFCreateScript.sql");
    se.create(true,true);

在hibernate.cfg.xml中我添加了…

<mapping resource="org/mkcl/personservices/models/Person.hbm.xml" />

当我执行java应用程序时,我得到了这个异常...

 Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3415)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3404)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3392)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1341)
    at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:931)
    at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:188)
    at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:156)
    at mkcl.accreditation.model.GenrateSchema.main(GenrateSchema.java:34)
Caused by: org.hibernate.PropertyNotFoundException: field [countryCode] not found on java.util.List
    at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:182)
    at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:174)
    at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:197)
    at org.hibernate.internal.util.ReflectHelper.getter(ReflectHelper.java:253)
    at org.hibernate.internal.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:229)
    at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:326)
    at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2286)
    at org.hibernate.cfg.HbmBinder.bindComponent(HbmBinder.java:1994)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2191)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2141)
    at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:407)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:322)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:173)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3412)

有人能帮我吗?

共有1个答案

班高明
2023-03-14

如果将整个jar添加到Hibernate配置中,那么它包含的所有映射(*.hbm.xml)都会自动添加到配置中。不需要在hibernate.cfg.xml文件中添加以下行:

<mapping resource="org/mkcl/personservices/models/Person.hbm.xml"/>
 类似资料:
  • 问题内容: 我想在JAR文件中包含资源文件(图像,文本文件…)。我将资产文件夹添加到类路径中,因此当我在netBeans中运行该程序时,程序运行正常。 但是,如果我构建项目,则会收到错误消息: 这是正常错误吗? 所以我试图像这样手动添加资产: 但这行不通。我有事吗?对不起,我的英语,谢谢您的帮助。 问题答案: 不要将文件放在桌面上。转到项目的Source文件夹,然后将其复制到该文件夹​​中。在Ne

  • 我知道已经有一些关于相对路径的问题,但是我总是无法让JavaFX FXML加载器从包本身以外的包加载资源。 加载类位于包gui.controllers中,fxml文件位于包中。我现在应该写什么: 提前谢谢

  • 我想遍历一个包含键/值对的文件,并将它们放入一个映射中。 该文件包含如下值: 下面是我的代码: 我遇到的问题是,名为的映射没有从文件中添加新值,它在大小为3时停止,不确定原因。非常感谢您的帮助。谢谢

  • 是否可能在MapStruct中使用不同的映射器?我有这个映射器 是否可以将此实现更改为MapStruct?

  • TensorFlow 白皮书 在这份白皮书里,你可以找到关于 TensorFlow 编程模型的更多详情和 TensorFlow 的实现原理。 TensorFlow: Large-scale machine learning on heterogeneous systems 引用 如果你在你的研究中使用了 TensorFlow,并且希望在引用中注记 TensorFlow,我们建议你引用上面这篇论文。