hbm.xml插入外部xml文件的配置

hbm.xml可插入外部xml文件替换重复使用的内容。例如我这里对User进行分表,将使用user0user1user2之类的表,因此hbm映射文件内容基本都是一样的。可使用ENTITY声明插入外部的xml片段。

dbmap/User.hbm.xml

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"

    [<!ENTITY UserProperty SYSTEM "classpath://dbmap/UserProperty.xml">]>

 

 

<hibernate-mapping package="model">

    <class

        name="User0"

        table="user0"

        lazy="false"

    >

        &UserProperty;

    </class>   

   

    <class

        name="User1"

        table="user1"

        lazy="false"

    >

        &UserProperty;

    </class>

</hibernate-mapping>

hibernate3.2以上版本支持ENTITY使用classpath://协议。

如果classpath://dbmap/UserProperty.xml这个路径找不着文件,会报出一个很让人误解的异常:

org.dom4j.DocumentException: unknown protocol: classpath Nested exception

应该提示路径找不到,而不是提示不支持这个协议。

 

其中dbmap/UserProperty.xml

<?xml encoding="utf-8"?>

<id

    name="id"

    type="string"

    column="id"

    <generator class="assigned"/>

</id>

 

<property

    name="name"

    column="name"

    type="string"

    not-null="false"

    length="20"

/>

<property

    name="passwd"

    column="passwd"

    type="string"

    not-null="false"

    length="20"

/>

 

你可能感兴趣的:(xml,Hibernate,.net)