2012-03-15 11 views
4

問題はolder SO questionと同じですが、Grails 2.0では解決されません。抽象ドメインクラスは@MappedSuperclassとして処理されず、常に独自のテーブルに保持されます。私がgrails-app/domainの外に移動すると、まったく動作しません。MappedSuperclass Alternatives in Grails 2.0

@MappedSuperclass(共有IDと共通フィールドを持つ独自のテーブルを作成せずに)のように振る舞う抽象スーパークラス(またはさらにmixin)を持つ方法はありますか?

答えて

2

我々は同じ問題を抱えていたし、(2.0 Grailsのではない)のGrails 2.2.1でこのようにそれを解決:

は、グルーヴィーなのsrc /の下に抽象スーパークラスを作成しました:

abstract class Auditable { 
    Date dateCreated 
    Date lastUpdated 

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

は「具体的なクラスを作成しましたGrailsのアプリ/ドメインの下に小包」:

class Parcel extends Auditable { 
    ... 
} 

あなたがこの種のマッピングを解決するためのGrails 2.1または最新のリリースのGrails 2.2.3の代わりの2.0.xを使用する必要があります。

+0

期待どおりに動作します。どうもありがとうございました。 Grails 2.4.5でテスト済み –

+0

Grails 3.2.4でも私のために働いていましたが、両方とも同じであっても、すべての関連付けをベースクラスに入れなければなりませんでした。親クラスでそれらを見つけられなかった場合(たとえば、基本クラスのインスタンスからアソシエーションにアクセスしようとしたときにそのようなプロパティがないと言った場合)それでも、まったく同じ2つのクラスより優れています。ありがとう! – Schmick