2012-03-15 59 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