在閱讀grails官方指南時,我有關於belongsTo與多對一關係的問題。belongsTo可以爲空?
當我定義了兩個班,臉部和鼻子下面所列:
class Face {
String name
Nose nose
static constraints = {
}
}
class Nose {
String color
static belongsTo = [face: Face]
static constraints = {
}
}
我認爲我們可以讓臉部的實例有兩種方式:
同時使臉鼻子時間
def rudolph = new Face(name: 'Rudolph', nose: new Nose('color': 'Red')).save(failOnError: true)
使鼻子和麪部在序列
def nose = new Nose(color: 'Red').save(failOnError: true) def rudolph = new Face(name: 'Rudolph', nose: nose).save(failOnError: true)
然而,無論是給我這樣的錯誤:
Fatal error running tests: Validation Error(s) occurred during save():
- Field error in object 'relationship.Nose' on field 'face': rejected value [null]; codes
當然,如果我把鼻子上的限制,它的工作原理:
class Nose {
String color
static belongsTo = [face: Face]
static constraints = {
face nullable: true
}
}
我不是確定後退引用屬性是否必須始終爲空。
另一個問題是,下面的靜態屬性的作品,因爲它沒有「面子」屬性:
static belongsTo = Face
如果沒有恢復參照屬性名,爲什麼我們定義屬於關聯的財產?
belongsTo從手冊中的描述描述了多對一的關係。我可以忽略這種關係嗎?我只需要考慮一對多。互聯網上的一些手冊/教程讓我感到困惑。謝謝。 – nasiajai
在上面的問題中,您不需要belongsTo。至於其他情況下,你將不得不顯示代碼 – MeIr