我對JHipster比較陌生。Jhipster - 與另一個字段(不是id)的關係(加入)
使用JHipster 3.12.1生成該應用
我有以下JDL文件:
entity Country {
countryCd String minlength(2) maxlength(2) required,
countryNm String maxlength(64) required
}
entity State{
stateCd String minlength(2) maxlength(2) required,
stateNm String maxlength(40) ,
stateTypeCd String maxlength(1) required
}
entity ZipCode{
zipCd String maxlength(20) required
}
entity ZipCodeGeoBrg{
countryCd String minlength(2) maxlength(2) required,
zipCd String maxlength(20) required,
cityNm String maxlength(100) required,
stateCd String minlength(2) maxlength(2) required,
countyNm String maxlength(100) ,
countyCd String maxlength(20) ,
communityNm String maxlength(100) ,
communityCd String maxlength(20) ,
latitudeNum BigDecimal ,
longitudeNum BigDecimal,
accuracyNum Integer
}
relationship OneToMany {
ZipCode{zipCodeGeoBrg} to ZipCodeGeoBrg{zipCode(zipCd)},
Country{zipCodeGeoBrg(countryCd)} to ZipCodeGeoBrg{country(countryCd)},
State{zipCodeGeoBrg(stateCd)} to ZipCodeGeoBrg{state(stateCd)}
}
dto * with mapstruct
service all with serviceImpl
search ZipCodeGeoBrg with elasticsearch
的JDL文檔狀態:
默認情況下,加入是由id字段完成的......但是如果你想讓加入由另一個字段完成,那麼你可以做些事情E:
實體A { 名稱需要字符串 } 實體B
關係OneToOne { A {B}到B {A(名稱)} }
生成的類( ZipCodeGeoBrg)具有以下屬性:
@ManyToOne
private ZipCode zipCode;
@ManyToOne
private Country country;
@ManyToOne
private State state;
我的實體類已生成,但所有j oins位於id列上,而不是命名列(例如, countryCd)。我希望這樣的事情:
@ManyToOne
@JoinColumn(name = "COUNTRY_CD")
private Country country;
@ManyToOne
@JoinColumn(name = "STATE_CD")
private State state;
@ManyToOne
@JoinColumn(name = "ZIP_CD")
private ZipCode zipCode;
我已經試過了JDL這樣太:
relationship OneToMany {
ZipCode to ZipCodeGeoBrg{zipCode(zipCd)},
Country to ZipCodeGeoBrg{country(countryCd)},
State to ZipCodeGeoBrg{state(stateCd)}
}
,並得到了相同的結果。
這是一個現有的數據庫。 DBA願意更新表格並添加一個ID列,但不願意重做所有關係(例如,zip_cd是與ZipCode < - > ZipCodeGeoBrg相關的現有列,並且這不會改變)。所以我必須使這些工作與不是ID的列一起工作。我知道我可以在生成後手動更新實體,但我還有20個表要做,並且寧願讓該工具爲我做。
我錯過了什麼?