具有依赖性的hibernate映射文件到现有表/ POJO

时间:2009-03-31 15:43:29

标签: hibernate nhibernate-mapping mapping

我们有一个从hbm映射文件创建的现有工作数据库。

我们想为可选功能创建一些新表。

一个选项是这些新表总是存在,但我们更愿意只根据请求创建表和POJO。

我的问题是这些表/ POJO对现有表/ POJO有依赖性。我已经创建了一个映射文件但是如果它为现有表和新表创建create / drop命令,我只能使它工作, 以及他们的POJO。

我是否可以避免在创建脚本中出现这个现有的表/ POJO组。

在下面的示例中,Group是现有表/ POJO。

    

    <id name="id" type="java.lang.Long">
        <column name="ID" not-null="true" />
    </id>

    <many-to-one name="group"
        class="uk.co.foo.domain.dfwv.Group"
        foreign-key="GROUP_FK" lazy="false" not-found="ignore">
        <meta attribute="use-in-tostring">false</meta>
        <column name="GROUP_NAME"
             not-null="true" />
    </many-to-one>
</class>

生成此目标的ant目标位于下方,仅在列出依赖对象时才有效:

                                                                                     

            <fileset dir="${dfwv.mappings.dir}">
                <include name="**/groups.hbm.xml" />
            </fileset>
        </configuration>
        <hbmtemplate exporterclass="uk.co.foo.hibernateutils.tools.Exporter" templateprefix="config/foopojo/" template="config/foopojo/Pojo.ftl">
            <property key="jdk5" value="true" />
            <property key="ejb3" value="false" />
        </hbmtemplate>
    </hibernatetool>
</target>

如果没有对Group的依赖引用,那么我会收到错误:

建立失败 C:\ projects \ foo \ db-build.xml:187:架构文本失败:表DISCON_TEST中的关联引用了未映射的类:uk.co.foo.domain.dfwv.Group

Hibernate版本:3.1.2

1 个答案:

答案 0 :(得分:0)

你真的不能只是注释出映射,直到你真的需要它们吗? hibernate需要一个完整的提供实体的元模型,不能只为其中一些创建“存根”