0
我有兩個域:如何獲取類的實例而不是其子類?
事件:
class Incident {
String title
String description
}
static mapping = {
tablePerHierarchy(false)
}
而且IncidentWithTimers延伸事件:
class IncidentWithTimers extends Incident {
int currentResponseTime
Date responseTimeEndDate
}
IncidentWithTimers是不是在數據庫中實際的表,這是一個數據庫視圖。由於該領域是一個看法,我通過在beforeInsert
/Update
拋出異常禁用所有修改
def index() {
Incident curIncident = Incident.get(params.incident)
println(curIncident.getClass())// "class IncidentWithTimers"
}
:
現在,當我嘗試從一個控制器獲得一個事件實例,它在某種程度上返回IncidentWithTimers實例/ Delete
,在IncidentWithTimers類中。
當我嘗試修改並保存curIncident時,它嘗試訪問beforeUpdate()
,並引發錯誤,而我從來不想首先更改IncidentWithTimers
。
我該怎麼辦?
'params.incident'中的事件ID是指'Incident'還是IncidentWithTimers'的實例? –
都不是。 params.incident從查詢字符串中獲取事件的值。 (所以url.com/?incident=1會返回1)。 – Ivar
我的意思是,按照你的例子,ID 1是事件或IncidentWithTimers的事件?另外,「IncidentWithTimers」被映射爲來自「事件」映射到的同一個表的視圖返回的ID是什麼?是的,我暗示兩者應共享相同的ID「名稱空間」。 –