它說你可以把嵌入類放在與頂級父域類相同的域類文件中 - 這個從代碼的角度來看,它仍然會生成一個GeoAddress表,並且將這些列嵌入到源Venue表中。測試數據輸入到場地 - 地理地址表保持空白。grails v3.2.6/gorm嵌入類在同一個域中class.groovy在grails/gorms文檔中創建虛擬DB表
文檔意味着不應該生成此嵌入的表。我可以嘗試將GeoAddress移動到它自己的src/groovy文件中,因此它脫離了grails-app/domain文件夾,但是我必須'記住我已經完成了這個'。保持與包含類相同的文件會更「乾淨」。
除了將地理地址返回到完全域類本身 - 我如何告訴格姆姆當它被嵌入時不生成表格?
我在的grails-app venue.groovy /域文件夾類的名稱
class Venue {
String name
LocalDate dateCreated
LocalDate lastVisited
LocalDate lastUpdated
GeoAddress location
Collection posts
static hasMany = [posts:Post]
static embedded =['location']
static constraints = {
lastVisited nullable:true
location nullable:true, unique:true
posts nullable:true
}
static mapping = {
location cascade: "all-delete-orphan", lazy:false, unique:true
posts sorted: "desc", cascade:"save-update"
}
}
class GeoAddress {
String addressLine1
String addressLine2
String addressLine3
String town
String county
String country = "UK"
String postcode
//adds addTo/removeFrom methods to venue
static belongsTo = Venue
static constraints = {
addressLine1 nullable:true
addressLine2 nullable:true
addressLine3 nullable:true
town nullable:true
county nullable:true
country nullable:true
postcode nullable:true
}
}
難怪,如果你嘗試過它作爲抽象類是否會工作,使事情同樣的嘗試將其聲明爲'abstract class GeoAddress' – Vahid
它肯定不能是一個抽象類 - 因爲我必須創建它的實例才能添加到場地構造函數中。你不能有新的(),所以我不認爲這個工程。 –
我不認爲你會找到你正在尋找的答案,如果你關心表創建集dbCreate - 是否從領域模型自動生成數據庫 - '創建 - 下降','創建','更新'或'驗證'我假設更新或者甚至驗證不創建然後運行'grails export-schema'並自己手動創建表格 – Vahid