爲了在映射單向OneToMany關係時實現外鍵列(無joinTable),我遵循Grails(版本2.2.3)參考文檔,section 6.5.2.1 OneToMany映射的步驟,其中指出Unidirectional OneToMany relationship without join表
使用單向關聯時,需要在關聯本身上指定外鍵。對於給定的(由許多替代)的人(一個替換)和地址之間的單向一對多關係例如下面的代碼將在許多表更改外鍵
class One {
static hasMany = [manyCollection:Many]
static mapping = {
manyCollection(column:"ONE_ID")
}
}
然而,當我運行
One one = new One()
one.addToManyCollection(new Many())
one.save()
我在控制檯中
insert
into
one
(id, version)
values
(null, ?)
insert
into
many
(id, version)
values
(null, ?)
insert
into
one_many
(one_many_collection_id, many_id)
values
(?, ?)
通知Grails的CR請求一個名爲one_many的joinTable。所以,我的問題是:這是一個錯誤還是別的?我應該怎麼做才能擺脫joinTable?
即使當我使用類似
class One {
static hasMany = [manyCollection:Many]
static mapping = {
manyCollection(joinTable:false)
}
}
所強調here,我得到的結果相同
參考文檔是錯誤的。 **我們應該使用joinTable:false **而不是列。如果我僅使用文檔所述的列,則將創建一個joinTable。 –