標籤: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 自動建立外鍵