jpa使用注解生成表時(shí)無(wú)外鍵問(wèn)題及解決
jpa注解生成表時(shí)無(wú)外鍵
剛?cè)胧謘pringboot時(shí),在使用jpa實(shí)體注解生成表無(wú)外鍵。是因?yàn)閖pa不知道使用何種Dialect創(chuàng)建,默認(rèn)沒(méi)有外鍵。
在配置文件加上
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
就好了。
使用jpa自動(dòng)建表不生成外鍵情況
springboot項(xiàng)目搭配的jpa使用時(shí)候,有一對(duì)多的關(guān)系注解,那么自動(dòng)會(huì)生成外鍵。外鍵在有些時(shí)候,會(huì)導(dǎo)致代碼不能走通,我們不想要怎么做。
@ManyToOne @JoinColumn(name="cid")
要使數(shù)據(jù)表中沒(méi)有外鍵關(guān)聯(lián)關(guān)系,注意兩點(diǎn)。
情況1
當(dāng)兩邊都有關(guān)聯(lián)關(guān)系字段,1的這端利用@org.hibernate.annotations.ForeignKey(name = “none”),多的那端在JoinColumn中加上
foreignKey = @ForeignKey(name = “none”,value = ConstraintMode.NO_CONSTRAINT)
情況2
當(dāng)只有多的那端有關(guān)聯(lián)字段,一的那段沒(méi)有關(guān)聯(lián)字段或者關(guān)聯(lián)字段被@Transient所修飾,請(qǐng)?jiān)诙嗟哪嵌嗽贘oinColumn中加上
foreignKey = @ForeignKey(name = “none”,value = ConstraintMode.NO_CONSTRAINT)
?@ManyToOne ?@JoinColumn(name="cid",foreignKey = @ForeignKey(name = "none",value = ConstraintMode.NO_CONSTRAINT))
最后需要說(shuō)明的是@org.hibernate.annotations.ForeignKey(name = “none”)這個(gè)注解被廢棄了,所以更新jar包的時(shí)候需要注意下。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot項(xiàng)目部署在linux上運(yùn)行的兩種方式小結(jié)
這篇文章主要介紹了springboot項(xiàng)目部署在linux上運(yùn)行的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
springMVC+ajax實(shí)現(xiàn)文件上傳且?guī)нM(jìn)度條實(shí)例
本篇文章主要介紹了springMVC+ajax實(shí)現(xiàn)文件上傳且?guī)нM(jìn)度條實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
java 鍵盤(pán)輸入的多種實(shí)現(xiàn)方法
java不像C中擁有scanf這樣功能強(qiáng)大的函數(shù),大多是通過(guò)定義輸入輸出流對(duì)象。常用的類(lèi)有BufferedReader,Scanner。2013-03-03
JAVA簡(jiǎn)單工廠模式(從現(xiàn)實(shí)生活角度理解代碼原理)
本文主要介紹了JAVA簡(jiǎn)單工廠模式(從現(xiàn)實(shí)生活角度理解代碼原理)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03

