2017-07-06 31 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() 
} 
相关问题