如何取消hibernate hbm2ddl.auto 自動建立外鍵

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.