考慮下面的Grails GORM域類和使用表每個層次結構的繼承:如何從一個派生類Grails的/格姆改變域類模型對象到另一個
class Book {
static belongsTo = [ parent: Parent ]
String title
}
abstract class Parent {
static hasMany = [ books: Book ]
}
class A extends Parent {
String asset
}
class B extends Parent {
String asset
}
說我有獲取一個實例的A類數據庫。我想將它轉換爲B類的一個實例。什麼是grails慣用的方式來做到這一點?
如果沒有hasMany關係,我會刪除A並創建一個新的B.但是我不希望通過大量圖書並更新其parent_id字段來指向新的B的開銷。
底下,我基本上只是想執行SQL UPDATE將數據庫字段parent.class從A更改爲B.那麼在GORM/Grails中執行此操作的建議方式是什麼?
我試過本機SQL,它實際上在我的集成測試中不起作用。運行本機SQL查詢後,我仍然在檢索舊版本。我懷疑Hibernate的緩存與它有關。但是我已經開始使用一種解決方法,而不是用數據庫中的B替換A.就像你說的那樣,這實際上違背了GORM的格局,因此結果太長了。謝謝回覆! – 2011-04-21 04:46:43