Grails中的MappedSuperclass替代品

时间:2008-12-04 18:40:26

标签: grails jpa auditing

在过去的许多项目中,我使用this JPA / Hibernate方法为系统添加审计功能。它非常有效且不引人注目。

是否有Grails @MappedSuperclass替代(缺少Java中的域模型对象而不是Groovy)?如何在没有为其创建表的情况下,在每子类表方法中声明父类?我已经阅读了GORM文档(5.2.3 Inheritance in GORM),但除了每个层次表和每个子类的表讨论之外,我没有找到有关如何执行此操作的任何详细信息。

或者,在Grails中实现此类审核的推荐方法是什么?

1 个答案:

答案 0 :(得分:4)

好的,做了一点搜索,我回答了我自己的问题:)

基本上,它就像将MappedSuperclass声明为abstract一样简单,而grails不会为它创建表。我通过re-reading the manual实现了(RTFM基本上......创造了奇迹):“GORM支持从抽象基类和具体的持久GORM实体继承。”即具体类是持久的,所以抽象类不是。请仔细阅读。

E.g。

abstract class Auditable {
    Date dateCreated
    Date lastUpdated
}

class Book extends Auditable {
    String title
    String description
}

只会创建书籍表,它将具有

  

DATE_CREATED

  

LAST_UPDATED

列。此外,作为额外的奖励,Grails的dateCreated和lastUpdated属性为auto time-stamped

希望这有助于其他人。