2012-01-17 21 views
4

私はgrailsでドメインクラスを持っています...どのようにして、dbを作成するときにこのエンティティを削除するようにしますか?ちょうどそれを残す。Grails Entity without persist

答えて

9

あなたはドメインクラスである必要はありません。 src/groovyファイルにPOGOを作成するだけです。私の前提が間違っている場合は、あなたが達成しようとしていることをさらに説明してください。

2

コマンドオブジェクトを使用できます。

http://grails.org/doc/latest/guide/single.html#commandObjects

彼らはデータバインディングとドメインクラスの検証を提供しますが、データベースにマップされません。

+1

コマンドオブジェクトが検証可能になるという副作用を利用しています。 src/groovyクラスを作成し、 'grails.validation.Validateable'を使って注釈を付ける方が良いでしょう –

+0

コマンドオブジェクトのGrailsドキュメントは、検証機能に特に注意するので、副作用として扱われているようには見えません。 – Patrick

+1

コマンドオブジェクトをコントローラに宣言して、コマンドオブジェクトにする必要があります。コマンドオブジェクトとして使用せずに、非永続ドメインクラスとしての検証機能を利用するだけでは、それは副作用です。 –

10

私が理解すれば、ドメインクラスからテーブルを作成したくないのですか?はいの場合は、ドメインクラス内で次のコードを使用してください。

static mapWith = "none" // disable persisting into database 
+0

この質問に対するその他の回答はうまく役立ちますが、これは厳密には質問に対する正解です。 – scrotty

+1

'mapWith'のデフォルト値は' 'GORM" 'です。 [grailsソース](https://github.com/grails/grails-core/blob/31af2108f171534edca3f6f15391364ee1fb2641/grails-core/src/main/groovy/org/grails/core/DefaultGrailsDomainClass.java)を参照してください。 – GreenGiant