Hibernate.cfg.xml dosyasında aynı klasöre yerleştirilmiş * .hbm.xml dosyalarım var. Şimdi, bu klasörün bir alt klasöründe bulunan bazı * .hbm.xml dosyalarını eşlemek istiyorum. Bunu nasıl yapabilirim? Teşekkürler!Hazırda bekletme: * .hbm.xml dosyasını farklı bir klasörde nasıl eşlenir?
<hibernate-configuration>
<session-factory name="MySessionFactory">
<!-- some hibernate properties here -->
<!--This below works fine-->
<mapping resource="A.hbm.xml"/>
<!--This doesn't-->
<mapping resource="/dir/B.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Bu benim Ant dosyasının bir parçasıdır::
burada hibernate.cfg.xml
parçası
<target name="generateHibernateSql">
<taskdef name="SchemaExportTask"
classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
>
<classpath>
<pathelement location="${build.classes.main.dir}"/>
<pathelement location="${base.configuration.hibernate.dir}"/>
<path refid="build.classpath.lib"/>
</classpath>
</taskdef>
burada benim klasör yapısı
${base.configuration.hibernate.dir}
| hibernate.cfg.xml
| A.hbm.xml
|--dir
|---| B.hbm.xml
${build.classes.main.dir}
İlk denenmiş ve Maurice önerildiği gibi başarısız olmuş
,
hattı değiştirildi<mapping resource="dir/B.hbm.xml"/>
hala aynı hatayı veriyor:
Schema text failed: Could not parse mapping document from resource dir/B.hbm.xml
ve sonra denemek için gitti Mark önerdiğim gibi schemaexpoert'e ekleniyor. O zaman artık "A.hbm.xml" yi bile bulamazdım. hatayı kapalı verilmesi:
Schema text failed: Could not parse mapping document from resource A.hbm.xml
Benim SchemaExportTask şimdi benziyor:
<SchemaExportTask
config="${base.configuration.hibernate.dir}\hibernate.cfg.xml"
quiet="no"
text="no"
drop="no"
delimiter=";"
create="yes"
output="${dist.database.dir}\schema-export.sql"
>
<fileset dir="${base.configuration.hibernate.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</SchemaExportTask>
[Çözülmüş]
sonuca Ben gerçekten aptal olmasıdır. Farklı bir dizinde bulunmakla ilgisi yoktu. Şaşkınım çünkü bir kerede test aşamasında iki şeyi değiştiriyordum ve sonra hepsini masum "dizin değişikliği" nden sorumlu tuttum. Herkesin zamanını boşa harcadığım için üzgünüm.
Birisi ilgilenirse, burada olan şey buydu. Yerel bir DTD dosyası kullanarak bazı XSLT çevirileri yaptım ve XSL dosyamda göreli bir yolla yerel DTD dosyasını belirledim. Ama oluşturulan hbm.xml dosyalarını bir fark dizinine koydum - bundan dolayı SchemaExportTask artık DTD dosyasını bulamıyor ve yeni hbm.xml dosyalarını ayrıştıramadı. Ve aptalca bir nedenden dolayı, aşağıdaki tamamen farklı hata mesajlarının aynı şeyi ifade ettiğini düşündüm .... İnsanlara, iyi bir nedenden dolayı hata mesajları yazdığını hatırlattığınız için çok teşekkürler. fileset
'u eklemek hala çalışmıyor, ancak şimdi hata ölçümlerini okuduğumu biliyorum ... Eminim yakında tamir edeceğim. =. = '' Ben Maurice önerdi ama ben bir açıklama daha fazla vermek düşündük değişimiyle eşit genel hazırda kullanım için
Schema text failed: resource: B.hbm.xml not found
Schema text failed: Could not parse mapping document from resource dir/B.hbm.xml
Aldığınız bir hata iletisi ekleyebilir misiniz? – Mark