私はいくつかの* .hbm.xmlファイルをhibernate.cfg.xmlファイルの同じフォルダに配置しています。今、このフォルダのサブフォルダにある他の* .hbm.xmlファイルをマップしたいと思います。どうすればいい?ありがとう!Hibernate:* .hbm.xmlファイルを別のフォルダにマップする方法は?
<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>
これは私のAntファイルの一部です:
は、ここに私のhibernate.cfg.xml
の一部だ
<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>
はここに私のフォルダ構造
${base.configuration.hibernate.dir}
| hibernate.cfg.xml
| A.hbm.xml
|--dir
|---| B.hbm.xml
${build.classes.main.dir}
[編集]
モーリスが示唆したように、私が最初に試み、失敗しているが、
<mapping resource="dir/B.hbm.xml"/>
にラインを変更し、まだ同じエラー与える:
Schema text failed: Could not parse mapping document from resource dir/B.hbm.xml
をして、私がしようとするようになりましたMarkが提案したように私のschemaexpoertに追加する。それから、私の "A.hbm.xml"ももう見つからないでしょう。エラーを放つ:結論は、私は本当に愚かだったということです
<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>
[解決済み]
:
Schema text failed: Could not parse mapping document from resource A.hbm.xml
私SchemaExportTaskは今のように見えます。別のディレクトリにいることとは何の関係もありませんでした。一度に2つのことをテスト段階で変更していたので、私は混乱しました。そして、私は無邪気な "ディレクトリの変更"のすべてを非難しました。みんなの時間を無駄にして申し訳ありません。
興味があれば、ここで何が起こったのですか。ローカルのDTDファイルを使用してXSLT変換を行い、ローカルのDTDファイルをXSLファイルの相対パスで指定しました。しかし、私は生成されたhbm.xmlファイルを差分ディレクトリに入れます。したがって、SchemaExportTaskはDTDファイルをもう見つけられず、新しいhbm.xmlファイルを解析できませんでした。そして、いくつかの愚かな理由のために、私は次の全く異なるエラーメッセージが同じことを意味していると思っていました....マークは、人々が正当な理由でエラーメッセージを書いたことを思い出してくれてありがとう!まだfileset
を追加してもまだ動作しませんが、エラーメサージュを読むことを知っています...私はすぐにそれを修正すると確信しています。 =。=「」私はモーリスが示唆されたが、私は説明の多くを与えるだろうと思っ変更に同意する一般的なHibernateの使用方法について
Schema text failed: resource: B.hbm.xml not found
Schema text failed: Could not parse mapping document from resource dir/B.hbm.xml
受信したエラーメッセージを追加できますか? – Mark