2013-02-27 108 views
0

我有一個jar文件,其中有一些映射文件,我想添加作爲映射資源在hibernate.cfg.xml中,以便在org.hibernate.cfg.Configuration中添加JAR ..從其他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" /> 

Person.hbm.xml此XML文件是jar文件。

當我執行的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

如果將整個jar添加到Hibernate Configuration,則其包含的所有映射(* .hbm.xml)都會自動添加到Configuration。不需要在hibernate.cfg.xml文件中添加以下行:

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