所有的XML映射文件都需要定义,如下所示的“DOCTYPE”:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 该DTD定义将会根据不同的Hibernate版本而有所变化。默认情况下,处于XML文件解析效率的考虑,Hibernate在其二进制包hibernate3.jar的类路径"org/hibernate/"会存放一份DTD声明文件。 在Hibernate运行阶段,它首先会在Java运行时的类路径(CLASSPATH)下搜索DTD文件,然后再通过XML中的URL访问DTD定义。如果在开发过程中发现Hibernate在解析"*.hbm.xml"时消耗的时间过长时,就需要检查Hibernate是否通过网络来获取DTD文件,并查找Hibernate运行环境是否包含了DTD的定义文件。 Hibernate3.0的DTD文件位于: http:hibernate.sourceforge.net/hibernate-mapping-3.0.dtd 开发者将Hibernate从版本2升级到3的时候,往往忽视DTD定义路径的修改,此时Hibernate初始化时导入"*.hbm.xml"非常慢,需要将2.0修改成3.0就不会有问题了。