2017-07-06 42 views
0

我目前正在開發一個grails項目,在那裏我必須將遺留數據庫與GORM進行映射。某些數據庫列是由觸發器自動生成的。Grails + GORM:有沒有和hibernate的@Generated等價的東西?

我現在的問題是,我保存一個實體後,自動生成的列的狀態不會反映在實體中。

我知道我可以做entity.refresh()來強制從數據庫重新加載整個實體。但我不認爲這是一個可行的解決方案,因爲這種情況應該透明地處理。我不想在每次保存後顯式刷新實體。

我知道在休眠中存在一個@Generated(GenerationTime.INSERT)註釋,它完全符合我想要的。

有沒有和GORM一樣的方法?

+0

可能不是,我想你應該在grails數據映射項目中爲這個功能請求創建一個新問題 –

回答

0

我不相信GORM支持這種原生的(但會感興趣,如果另一個答案可以顯示的方式!),但這裏的文檔:http://docs.grails.org/latest/ref/Domain%20Classes/refresh.html表明,刷新的確是正確的做法。

您可以將它與受支持的事件(afterInsert和afterUpdate應該爲您工作)組合以刷新您的對象。這不完全透明,但至少完全包含在您的域對象中。

// I didn't actually test this but it should work like this, or similar. 
//Put the method in your domain object itself and it will be called automatically. 

def afterInsert(){ 
    this.refresh() 
} 
相關問題