我有一個域類,它擴展了另一個具有相同名稱但不同包中的groovy類,但是在不同的庫中。Grails 3.1.1 - 模型類擴展另一個常規類時髒檢查不工作
問題是,當我修改域類上的實例時,它沒有標記爲髒&因此更改不會持久。
我讀過那個grails 3發行版有一些增強的髒檢查&這可能是一個bug或者我錯過了一些東西。
新對象正確保存沒有任何問題,我已經使用isDirty()修改域對象以及修改的屬性&上方法都返回假。對象附加到會話中,通過確定isAttached()。
爲了重現,我創建了一個測試項目,代碼如下:&嘗試更新使用腳手架生成的默認grails視圖中的對象,但這些更改仍未保留。
注意:我已經做了類似的東西在Grails 2.4 &它曾經工作。
域類如下:
package com.perseus
class Derived extends Base{
static constraints = {
name blank: false, nullable: false
}
}
基類中的src /主/常規:
package com.perseus
class Base implements Serializable {
private static final long serialVersionUID = 1L
String name
}
控制器
package com.perseus
class DerivedController {
static scaffold = Derived
}
鏈接到github project。
Isssue:即使模型已被修改,模型也未標記髒。當模型類擴展另一個常規類時會發生這種情況。
如何重現:
- 運行應用程序。
- 創建一個新模型對象(型號名稱衍生)
- 使用編輯視圖修改對象&單擊更新。
- 您將看到修改不會持續。
這裏沒有足夠的信息來知道什麼是錯的。有很多解釋爲什麼一個對象在嘗試更新後可能不會被認爲是髒的。 –
我會嘗試用一個非常小的項目重現它並共享一個鏈接。說實話,沒有什麼要補充的,我的觀點是使用腳手架創建的,當我更新域時,更改不會持續。給我一些時間,我會回來更多的細節。 –
使用示例代碼更新了問題,還給出了重現項目問題&github鏈接的步驟。 –