Grails FAQには次のように書かれています。
Q: src/groovy のソースからドメイン クラスにアクセスするにはどうすればよいですか?
場合によっては、src/groovy に存在し、サービスやその他のアーティファクトから使用する予定のいくつかのユーティリティ クラスを開発していることがあります。ただし、これらのクラスは Grails によって事前にコンパイルされているため、インスタンス化して Book.findByTitle("Groovy in >Action") のように記述することはできません。しかし幸いなことに、これを行うことができるため、回避策があります。
import org.codehaus.groovy.grails.commons.ApplicationHolder
//…</p>
def book = ApplicationHolder.application.getClassForName("library.Book").findByTitle("Groovy in Action")
動的な Gorm メソッドが正しく機能するには、アプリケーションのブートストラップが完了している必要があります。
ただし、ドメイン オブジェクトを直接インポートして、src/groovy クラスで GORM メソッドを問題なく使用できるようです。
Book.findByTitle("Groovy in Action")
ApplicationHolder は非推奨であるため、このアドバイスは古くなっているに違いありませんが、src/groovy から直接ドメイン クラスを使用することを避ける理由はまだありますか?