MOP

Grailsを使い始めて、Rails以降のフレームワークだと当たり前になっているようですが、ドメインクラスの操作に

    new Book(title:'タイトル').save()

    def book = Book.findByTitleLike("Grails%")

みたいにできるのが不思議でした。いままで使ったORマッパー(Torque,Hibernate,S2Dao,etc.)だと、何らかのクラスを継承したりDAOを介してというスタイルだったので。ソースが追いづらいしどういう処理になっているのか想像しづらいです。

ドメインクラスに限らずGrailsの処理はGroovyのMOP(Meta Object Protocol)によっている部分が大きいようで、

上記の記事は参考になりました。Grailsでやっていることと同じかはわからないのですが、Dynamic Finderについてはこういうことかと納得できました。
こんなのはさわりで、Grailsはかなり奥深そうなんですが、そこを知らずに使うのはあぶなそうです。