我们有一个从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
答案 0 :(得分:0)
你真的不能只是注释出映射,直到你真的需要它们吗? hibernate需要一个完整的提供实体的元模型,不能只为其中一些创建“存根”