我有一個Domain類,名爲Contact
,具有多個hasMany關係,另一個Domain類別Employee
,它是Concat
的一部分。GORM映射視圖
Contact
有一個表contact
和員工應在查看它看起來像這樣映射:
SELECT * FROM contact where employee=1
Employee
應該有相同的列,比Contact
關係,我怎麼寫域類? 我可以使用繼承嗎?
編輯
現在我已經使用的繼承像這樣:
class Employee extends Contact { }
class Contact{
static mapping = {
tablePerHierarchy(false)
}
}
,到目前爲止的工作,但現在我想給一些關係添加到Employee
,像這樣:
class Employee extends Contact {
static belongsTo = [CostCenter ]
static hasMany = [costCenter: CostCenter]
static mapping = {
costCenter joinTable: 'employee_cost_center', column: 'employee_id'
}
}
class CostCenter {
static hasMany = [employees:Employee]
static mapping = {
employeesjoinTable: 'employee_cost_center', column: 'cost_center_id'
}
}
現在我有一個問題,表'employee_cost_center'參考Contact
其中是好的,但也增加了「僱員標識」:
contact_id
employee_id
cost_center_id
,所以我可以添加關係來接觸,但後來我在CostCenter
Contact
而不是Employee
。
如何添加關係到Employee
?
爲什麼必須'Employee'子類'Contact'?你需要繼承提供的多態性嗎? –
我正在爲整個問題尋找一個好的解決方案,該解決方案不需要使用繼承。如果你有另一個想法,讓我在這裏。 – YAT
只要'Contact * * hasMany * s沒有* belongsTo *回'Contact',您就可以使用Groovy特性。該特徵將包含'Contact'和'Employee'中的屬性和關聯,通過實現這個特徵可以得到它們。這意味着不會有聯繫實體/域類。其他領域類也可以實現這個特徵。 –