码迷,mamicode.com
首页 > Web开发 > 详细

如何取消hibernate hbm2ddl.auto 自动创建外键

时间:2014-11-27 10:55:12      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:hibernate hbm2ddl 自动创建 外键

利用hbm2ddl自动创建数据库表时,会同时创建表的外键关联。配置如下。

<prop key="hibernate.hbm2ddl.auto">create</prop>

要取消外键的自动创建,需要配置foreign-key="none"

hibernate的更新log有如下说明:

Changes in version 2.1.9 (xx.x.xxxx)
------------------------------------
* foreign-key="none" can be used to disable generation of a foreign key.

因此,项目中关于hibernate ORM的配置可以用注解方式,也可以用配置文件方式。

用配置文件方式可以在xml相应实体类进行如下配置(注意其中的foreign-key="none"):

<class name="org.jbpm.identity.User" table="JBPM_ID_USER" discriminator-value="U">
    <id name="id" column="ID_">
      <generator class="native" />
    </id>
    <discriminator type="char" column="CLASS_" />
    <property name="name" column="NAME_" />
    <property name="email" column="EMAIL_" />
    <property name="password" column="PASSWORD_" />
    <set name="memberships" cascade="all">
      <key column="USER_" />
      <one-to-many class="org.jbpm.identity.Membership" />
    </set>
    <set name="permissions" cascade="all" table="JBPM_ID_PERMISSIONS">
      <key column="ENTITY_" foreign-key="none" />
      <element type="org.jbpm.identity.hibernate.PermissionUserType">
        <column name="CLASS_" />
        <column name="NAME_" />
        <column name="ACTION_" />
      </element>
    </set>
  </class>

用注解方式可以在相应类字段的get方法前配置注解如下:

@JoinColumn(name="parent_id")
@ForeignKey( name = "none" )

以上。

如何取消hibernate hbm2ddl.auto 自动创建外键

标签:hibernate hbm2ddl 自动创建 外键

原文地址:http://mumufairy.blog.51cto.com/6184508/1583062

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!