オブジェクト倶楽部春イベント「天野カンファレンス」が、盛況のうちに実施されました。快くご協力くださった講演者の天野氏のみなさま、お忙しい中ご参加くださった皆さん。ありがとうございました。懇親会の席では日本のエンジニアの精鋭がずらりと顔を揃え、かなり「ディープ」なカンファレンスとなりました。加いただいたすべての皆さまに心より感謝申し上げます。ありがとうございました。気になる当日の様子や資料は、こちらのページで公開しております。腰リールカンファレンスの日時が迫っています。最終のご案内になりますよ!奮ってご参加くださいね。┗【プログラミング】Cayenneで始めるO/Rプログラミング[10]ちょうどこの連載が始まったのが昨年のWWDCの直前でした。その頃は2006年末から2007年初めには出る、と言われていたLeopardはまだ発売されていません。今度のWWDCのセッション内容にはLeopardのものがあるので、それまでには出るんでしょうね。Appleの暦で春は「3月20日〜6月20日」と決まっています。WWDCは6/11-6/15。いえばiPhoneの発売も6月だとか。Leopardの秘密の機能はiPhoneとの連携だったりするのかも、そしてWWDCで発表なんでわ!!マックヲタな話はこの辺にしておいて、前回に引き続き、独自にSQLを記述する方法を紹介します。前回を読んでない人は、話の流れが掴めないと思うので、バックナンバー[*1]で確認してくださいね。それではCayenneで作られるSQLのカスタマイズに入ります。SelectQueryを継承して、カスタマイズしたい場合は、createSQLActionメソッドを修正することになります。このメソッドが返すSQLActionクラスが、SQL自動生成をコントロールしているのです。承した、CustomQueryクラス」を作ってみましょう。getCustomColumnDescriptor();}(1)で判断しているのはJDBCで接続しているかどうかです。JDBCで接続していない場合、今回は対象外としたいので、型をチェックしています。(2)と(3)はabstractメソッドにして、CountQueryで実装するようにしましょう。(4)で、このメソッドが戻すSQLActionを作成します。承した、CustomSelectActionクラスを作りましょう。}}差分は(5)と(6)で定義した部分です。この値はコンストラクタ(7)で受け取るようにしています。その値は、オーバライドしたcreateTranslatorメソッド内で使用しています。「ハック」とした部分でSelectTranslatorに、値を渡します。SelectTranslatorクラスは実際にSQL文を生成するクラスですが、オリジナルのクラスには、「ハック」のようにカスタムスクリプトやカラムを渡せません。そこで、(8)で書いているとおりSelectTranslatorクラスを継承した、CustomSelectTranslatorクラスを使うことにします。実際のコードは以下のとおりです。間を'カスタムSQL文'に書き換える。column;}createSqlStringメソッドをオーバライドし、独自SQLを作成します。super.createSqlString()で標準のSQL文を作ると、SELECTとFROMの間に、テーブルのカラムが入ります。分を置き換えよう、というものです。戻りのカラム情報が変更されているので、getResultColumnsをオーバライドして、戻りカラム一覧を偽装しておくことが重要です。CustomQueryもCustomSelectActionも、このCustomSelectTranslatorにカスタムスクリプトと、カラムを渡したいためにカスタマイズしているのです。最後にCustomQueryクラスを継承した、CountQueryクラスを作ってみましょう。}}countメソッドで件数を戻すようにします。CustomQueryでabstractにしていたgetCustomScriptおよびgetCustomColumnDescriptorメソッドを実装します。getCustomScriptで戻すのは、SELECTとFROMの間に差し込むSQL文です。getCustomColumnDescriptorでは、getCustomScriptで戻す値の型定義をします。ColumnDescriptorクラスはCayenneの標準クラスで、O/Rマッピングの型を定義できます。引数は、SQLから戻ってくるカラム名、第二引数はSQLで戻ってくる型、第三引数はJavaのオブジェクトにした場合の型です。TypesMappingには様々な型定義があるので、JavaDocを参考にしてください。数にも応用できると思います。10回に渡って連載してきた本シリーズも今回で終了です。読んでいただいた皆様ありがとうございました。Cayenneを通じてO/Rマッパーを使ったプログラミングに少しでも馴染んでいただけたのなら、幸いです。機会にお会いしましょう。(きしだ)[*1]バックナンバーは以下のURLを参照ください。http://www.objectclub.jp/ml-arch/magazine/183.html_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。人間はいつも区別をすることで生きています。「これは食べても太らないものか、そうでないか」などなど。人類は生存競争の過程の中で、区別する能力を高度に発展させてきた種であると言えます。と将来のことを考えるようになりました。意識の範囲が広がればいいことだらけかと言えば、決してそんなことはありません。「飲み会の後のラーメンが最高なんだよね」と楽しく夜のお腹を締めくくっていたのが、30歳を過ぎたあたりから「ここでラーメン食べちゃうからお腹の肉が上昇カーブなんだよね」と意識してしまい、今そこにある楽しみを我慢してしまうのです。意識の範囲は時間的に広がっていくだけではありません。家族のこと、同僚のこと、社会のこと、世界のこと(?)、といったように空間的にも広がっていきます。心を痛めている方も多いでしょう。痛になってしまうものなのです。ところでプログラマって一言にいっても実はいろいろあるので、区別をして考える必要があります。BASICのプログラマもいらっしゃれば、CやJava、.Netのプログラマもいらっしゃいます。最近ではPerlやRubyなどアジャイルな言語を得意とするプログラマの方も増えてきています。プログラミングといえばアセンブラだよという猛者な方いらっしゃることでしょう。注)私のような雑誌編集を生業とする人間にとって、いろいろな言語があるおかげで仕事が成り立っている半面、キャッチアップは並大抵のことではありません。相手の方のご専門を取り違えてお話を振ってしまい、冷たい空気が流れることも(汗)。オブジェクト倶楽部の皆様にはいつも心優しく取材にご協力いただいており、感謝の気持ちでいっぱいです。類」しか存在しないとのこと。「すべてのプログラマは2つに分けられる。なんとクリアーで自明な原理。Stupid!」の精神ですね(言い過ぎ?)。天野カンファレンス」(2007年3月28日開催)です。本イベントではオブジェクト倶楽部事務局長:天野勝氏オブラブ2006ベストトーカー:天野良氏デブサミ2007ベストスピーカー:天野仁史氏という業界をリードする3人の天野氏を迎え、どのようにして各「天野」氏が作られていったのかが語られました。4つのステージを経て、現在は妄想期にあるとのこと。オブジェクト倶楽部事務局長として、プログラマの交流の場を積極的に提供する同氏のスタンスが、山あり谷ありの経験を経て生まれてきたことを教えてくれる貴重なプレゼンでした。形はどうあれ自分の技術に自身を持てるっていいことだと思います。続いてプレゼンを行った天野氏は、各種イベントで発表したトークスを振り返りながら自らの経験を語ってくれました。この天野氏はオブラブ2006ベストトーカーとして知られる「良いほう/勝てないほう」の天野氏ですが、最近はマッシュアッパーやマッシュアップマスターと呼ばれているそうです。これは飲み会メンバーを「混ぜ合わせ」て「新しい価値を作り出す」という同士提唱の「飲み会マッシュアップモデル」にちなんだ名称。「今度呑みましょう」という(果たすつもりのない)大人の約束はせず、呑むと言ったら必ず呑むとのことでした。最後に発表を行ったのは、IT戦士として知られるamachangこと天野氏です。天野氏の人生は、青春時代、IT戦士前、IT戦士後の3つに分けられるとのことでした。青春時代の素敵な仲間達との時間を取り戻すため、「自分を窮地に追い込む」「人との出会いを大切にする」という心構えで日々IT戦士として格闘中とのこと。最近は、Applloを使ったクロスドメインのサービスマッシュアップに興味を持っていらっしゃるそうです(マッシュアップはマッシュアップでも天野氏の呑み会マッシュアップとは違って、こちらはちゃんとプログラミングの話)。天野氏のプレゼン終了後は、質疑応答とワールドカフェ(椅子を持ってあちこち動き回りながら行うディスカッション)が行われました。「人」についてこれだけ話題が尽きないって、とても素敵なことだと思います。スルー力は低くても、「人」を愛せるプログラマが大集合の一夜でした。人を愛せるのは人だけ。人を愛せるプログラマが作ったプログラムはきっとどこかで役に立っているはずです。換していくのか、あるいか1回限りのネタイベントだったのか、今後もオブジェクト倶楽部の動向から目が離せません。野口隆史氏)_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。ホントのところ今週は「どんなときに有給休暇使いますか?」のホントのところ。得するのか?が随分と違うようでした。