【问题标题】:Hibernate: Prevent the mapping class from creating the tableHibernate:防止映射类创建表
【发布时间】:2014-08-04 11:41:29
【问题描述】:

我有一个多 maven 模块项目,其中 Module1 包含休眠映射类,其他模块(Module2、Module3、Module4)使用此 Module1 作为依赖项。 因此,所有模块(Module2、Module3、Module4)都会在数据库模式中创建相同数量的表。

<hibernate-configuration>
<session-factory>
    <mapping class="com.model.Table1"/>
    <mapping class="com.model.Table2"/>
    <mapping class="com.model.Table3"/>
    <!-- Hundreds of other tables -->
</session-factory>
</hibernate-configuration>

但现在的情况是,我希望 Module3 不创建 Table2。 是否有可能我在 Module3 中添加了一些排除项或一些配置,可以忽略 Table2 创建但确实创建所有其他项。

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    通常,Hibernate 为映射的类创建表(例如,通过 hbm.xml 文件)。如果不映射类,则不会创建相应的表。请确保在 Hibernate 配置文件 (hibernate.cfg.xml) 中正确设置 hbm2ddl.auto 属性(例如,如果您想在启动时删除并重新创建表模式,请使用“create”)。

    有一些方法可以帮助你实现你所需要的,或者至少给你一些提示:

    我的想法是使用应用程序在启动时读取的配置文件,并根据使用的参数,仅将所需的映射文件添加到 Hibernate 会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2010-11-05
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多