【问题标题】:Grails + GORM: Is there an equivalent to hibernate's @Generated?Grails + GORM:有没有相当于hibernate的@Generated?
【发布时间】:2017-07-06 14:52:22
【问题描述】:

我目前正在从事一个 grails 项目,我必须在其中使用 GORM 映射一个遗留数据库。一些数据库列是由触发器自动生成的。

我现在的问题是,保存实体后,自动生成的列的状态不会反映在实体中。

我知道我可以使用entity.refresh() 来强制从数据库中重新加载整个实体。但我不认为这是一个可行的解决方案,因为这种情况应该透明地处理。而且我不想在每次保存后显式刷新实体。

我知道在 hibernate 中存在一个 @Generated(GenerationTime.INSERT) 注释,这正是我想做的。

有没有与 GORM 等效的方法?

【问题讨论】:

  • 可能不,我认为您应该为此功能请求在 grails 数据映射项目中创建一个新问题

标签: hibernate grails entity grails-orm


【解决方案1】:

我不相信 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()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多