2012-03-15 79 views
4

问题与older SO question中的问题相同,但该解决方案对Grails 2.0不再有效 - 抽象域类不作为@MappedSuperclass处理,但始终保留在其自己的表中。如果我将它移到grails-app/domain之外,它根本不起作用。Grails 2.0中的MappedSuperclass替代方案

那么有没有办法让一个抽象的超类(甚至更好的mixin),将行为像@MappedSuperclass(没有创建自己的表与共享ID和共同领域)?

回答

2

,我们有同样的问题,并与Grails的解决了这个问题2.2.1(不是Grails的2.0)是这样的:

创建抽象超在src /常规:

abstract class Auditable { 
    Date dateCreated 
    Date lastUpdated 

    static constraints = { 
    dateCreated(display:false) 
    lastUpdated(display:false) 
    } 
} 

创建的具体类“包裹”下的grails-app /域名:

class Parcel extends Auditable { 
    ... 
} 

您应该使用Grails的2.1或最新版本的Grails 2.2.3,而不是2.0.x版本来解决这一类的映射。

+0

这按预期工作。非常感谢你。在Grails中测试2.4.5 – 2015-07-15 18:15:01

+0

Grails 3.2.4也适用于我,尽管我必须将所有关联放在基类中,尽管它们在两者中都是相同的。当我在父类中拥有它们时,它找不到它们(例如,当我试图从基类的一个实例访问关联时,没有这样的属性)。尽管如此,比两个完全相同的类更好。谢谢! – Schmick 2017-02-14 03:35:14