jpa使用注解生成表時無外鍵問題及解決
jpa注解生成表時無外鍵
剛入手springboot時,在使用jpa實體注解生成表無外鍵。是因為jpa不知道使用何種Dialect創(chuàng)建,默認沒有外鍵。
在配置文件加上
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
就好了。
使用jpa自動建表不生成外鍵情況
springboot項目搭配的jpa使用時候,有一對多的關系注解,那么自動會生成外鍵。外鍵在有些時候,會導致代碼不能走通,我們不想要怎么做。
@ManyToOne @JoinColumn(name="cid")
要使數(shù)據(jù)表中沒有外鍵關聯(lián)關系,注意兩點。
情況1
當兩邊都有關聯(lián)關系字段,1的這端利用@org.hibernate.annotations.ForeignKey(name = “none”),多的那端在JoinColumn中加上
foreignKey = @ForeignKey(name = “none”,value = ConstraintMode.NO_CONSTRAINT)
情況2
當只有多的那端有關聯(lián)字段,一的那段沒有關聯(lián)字段或者關聯(lián)字段被@Transient所修飾,請在多的那端在JoinColumn中加上
foreignKey = @ForeignKey(name = “none”,value = ConstraintMode.NO_CONSTRAINT)
?@ManyToOne ?@JoinColumn(name="cid",foreignKey = @ForeignKey(name = "none",value = ConstraintMode.NO_CONSTRAINT))
最后需要說明的是@org.hibernate.annotations.ForeignKey(name = “none”)這個注解被廢棄了,所以更新jar包的時候需要注意下。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot項目部署在linux上運行的兩種方式小結
這篇文章主要介紹了springboot項目部署在linux上運行的兩種方式小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07springMVC+ajax實現(xiàn)文件上傳且?guī)нM度條實例
本篇文章主要介紹了springMVC+ajax實現(xiàn)文件上傳且?guī)нM度條實例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)
本文主要介紹了JAVA簡單工廠模式(從現(xiàn)實生活角度理解代碼原理)的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-03-03