class Store {
Integer storeNumber
//List employees
//List managers
static hasMany = [employees:Person,
managers:Person]
static constraints = {
employees(nullable:true)
managers(nullable:true)
}
}
class Person {
String name
String roll
static belongsTo = [store:Store]
static constraints = {
role inList: ['employee','manager']
}
}
現在添加商店
Store store = new Store(storeNumber: 1).save()
if (store) {
Person person = new Person(name:'fred', roll:'employee', store:store).save()
if (person) {
store.addToEmployees(person)
}
}
所以很明顯有頭痛,增益爲反向lookingup父的快捷方式,選擇是鬆散的關係如下所述,不關心父母,所以你不需要這最後一點,並明顯地鬆動你迄今命中的依賴性問題
結束E2A
你需要一個有其他關係
另外,如果你不關心屬於關聯關係,那麼事情會更容易喜歡
static belongsTo = Store
那麼該因素已不再一個問題。
不同的是與你有VS我向您展示了後者目前的方法 - 你可以從一個孩子反向走回父母很容易,如果查詢是從孩子
無論哪種方式,你總是可以從父母開始查詢開始然後再加入兒童和尋找孩子方面
等什麼套房,爲您先生
最後編輯 當你在做這個東西了多年,你覺得以另一種方式做事的方法你知道:
假設您確實設置了一個從Parent to Child開始的鬆散/弱引用,並且您想訪問Parent。這裏是如何:
Class User {
String username
static hasMany=[childs:Children]
}
Class Children {
String firstName
static belongsTo=User
// now to get access back to parent user without knowing parent a hackish thing like this can be done:
User getUser() {
User.findByChilds(this)
}
String getUserName() {
return user?.username
}
}
現在從一個孩子,你可以做$ {} instance.user或$ {} instance.userName,那麼這將綁定回父和子對象本身findByChilds(this)
年前的這個本來找我猜我翹曲
工作得很好!我現在看到,我不需要明確定義員工和經理的名單......因爲我通過hasMany將他們帶入課堂?謝謝! – dm123
對不起,我犯了一個錯誤在那裏,我修正了它簡而言之,你只是獲得反向查找功能作爲一個鬆散的關係,更容易管理,但鬆散的能力,這種能力 – Vahid
ofcourse最重要的因素是家長有空可以爲hasMany,否則它是一個循環這是想要的,因爲它需要這個,所以沒有這個能力 – Vahid