您的位置:首页 > 其它

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

2014-11-27 09:38 483 查看
利用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" )
以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: