データベースに初期データをセットアップするには、BootStrap.groovyでドメインクラスを使用してデータのセットアップをする。
以下のようにinitで、ドメインクラスを使用してデータをセットアップする。
この例では、Quoteにデータが存在していない場合にはデータをセットアップしないようにしています。もっと細かくセットアップの事前条件を定義したい場合には、ドメインクラスで提供される各種findメソッドを使うといいのではないでしょうか。
class BootStrap { def init = { servletContext -> if (!Quote.count) { new Quote(author: 'author', content: 'content').save() } } def destroy = { } }
もし大量にデータをセットアップしたい場合には、セットアップ処理を持ったクラスを作成してBootStrap.groovyと同じディレクトリ(conf配下)に置いてあげるとよいようです。
こうすると、BootStrapが肥大化するのを防止できます。
- BootStrap.groovy
class BootStrap { def init = { servletContext -> QuoteData.setup() } def destroy = { } }
- QuoteData.groovy
import qotd.Quote class QuoteData { def static setup() { if (!Quote.count) { new Quote(author: 'author', content: 'content').save() new Quote(author: 'author2', content: 'content2').save() } } }