2006.03.21 · 技術と道具

iBATISについて考えてみる(追補)

1つ前に書いた記事で、「あんた、そりゃ話が上手すぎるよ」と、もう1人の自分がツッコミを入れました。

その、もう1人の自分の言い分は、「Header-Detailがさも出来るように書いてあるけど、どうやってやるんだ!」とのことでした。

確かにそうです。 Header-Detailは、一般的に1:nの関係にあります。 1:1なら、requestMapの方法で良さそう。 じゃぁ、1:nは、どうすれば良いのでしょうか。

SQLライクに考えると、JOINで持ってくるとHeaderもDetailも1つのレコードに入りますから、多い方のDetailの個数分だけレコードが返ってくるわけです。

JOINしなければ、最初にHeader側の1つを取って、その後で外部KEYを使ってDetail側の複数個を取れば良いのです。

2回SQLを投げるなら… requestMapエレメントの子であるresultエレメントに、selectアトリビュートを書くという手があります。 この場合、2回目のSQLは1:nのn側を取ってくるので、その結果はListに詰めてやってきたりします。 良い感じです。

JOINでやる場合は? ていうか、出来るのか? 出来ないような気がする…。

2006/03/21 11:43
← iBATISについて考えてみる
システムメンテナンス終了のお知らせ →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。