jpa使用注解生成表時無外鍵問題及解決
jpa注解生成表時無外鍵
剛?cè)胧謘pringboot時,在使用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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Sharding-Jdbc 自定義復合分片的實現(xiàn)(分庫分表)
本文主要介紹了Sharding-Jdbc 自定義復合分片的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
Java中Map與JSON數(shù)據(jù)之間的互相轉(zhuǎn)化
我們在開發(fā)中難免和JSON打交道,這不小編最近遇到了,需要把一些信息轉(zhuǎn)成JSON字符串,下面這篇文章主要給大家介紹了關于Java中Map與JSON數(shù)據(jù)之間的互相轉(zhuǎn)化,需要的朋友可以參考下2023-04-04
Spring Boot @Scheduled定時任務代碼實例解析
這篇文章主要介紹了Spring Boot @Scheduled定時任務代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
SpringBoot解析@Value注解型解析注入時機及原理分析
@Value注解可以用來將外部的值動態(tài)注入到Bean中,可以獲取配置文件中的屬性值和通過SpEl表達式獲取bean的屬性或方法2024-12-12

