metacpan.orgRowクラスをMooで定義するのが面白くて使ってみた。いうテーブルを持つデータベースがあるとする。(id));Blog::Entryという名前でRowクラスを定義する。Mooのクラスなのでhasでカラムに対応したプロパティを記載する。1,);1;Blog::Commentもおんなじように書く。次はBlog::Schemaにテーブルとクラスの対応、リレーションの設定を書く。one_to_manyのとこの記述をすると$entry->get_commentとか$comment->get_entryができるようになる。'get_entry',);いよいよこれらを使ってみる。内部でDBIx::Connectorを使っている。返り値はプライマリーキーが返ってくる。},);SELECT。この場合のfindメソッドの返り値はBlog::Entryのインスタンス。$entry->body);result_setを経由してsearchすることもできる。where句はSQL::Abstractのシンタックスで、limitとかorder_byはSQL::Abstract::Moreのもので指定できる。この場合の返り値はオブジェクトインスタンスじゃなくてハッシュ値になる。ハッシュの方が扱いやすいだろ、っていう観点らしい。};EntryについたCommentを取ってくるところはリレーションのところで指定したget_commentsメソッドが使える。逆にComment側からはget_entryができる。この辺が記述もわかりやすくてよい。);}DBIx::Mint、いい感じ。