[Seasar-user:20493] Re: 【S2JDBC】多対多のテーブルにおける検索について
Shouta Morimoto
[E-MAIL ADDRESS DELETED]
2011年 1月 9日 (日) 00:51:28 JST
小林様
いつもお世話になります、森本です。
下記早速のご回答ありがとうございました。
ご連絡頂いた内容でよく理解できました。(勉強不足で申し訳ありません。)
私はS2Jdbc-Genは使用しておりませんので、前者の方法で試したところ、
うまく情報が取れていることが確認できました。
以上になります。
ありがとうございました。
(2011/01/09 0:30), Koichi Kobayashi wrote:
> 小林 (koichik) です.
>
> Date: Sun, 09 Jan 2011 00:09:22 +0900
> From: Shouta Morimoto<[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:20491] 【S2JDBC】多対多のテーブルにおける検索について
>
>> SQLで言うと以下のようなことをしたいと考えています。
>>
>> =========================================================
>> select a.id order_id, c.name item_name
>> from test.order_info a, test.order_item_rel b, test.item_info c
>> where a.id = b.order_id and b.item_id = c.id and a.id=1;
>> =========================================================
>
> この SQL は次のように書いたのと同じです.
>
> select a.id order_id, c.name item_name
> from test.order_info a
> inner join test.order_item_rel b on a.id = b.order_id
> inner join test.item_info c on b.item_id = c.id
> where a.id=1;
>
>> これをAutoSelectを使ってメソッドチェーンで表現することは
>> できるのでしょうか?JdbcManagerのfromメソッドには一つの
>> Entityしか指定できないようですし、S2JDBCのサンプルにも
>> このような例は載っていませんでした。
>
> 上記の INNER JOIN を使った SQL は,
>
> 「結合のネスト」
> http://s2container.seasar.org/2.4/ja/s2jdbc_manager_auto.html#結合のネスト
>
> を使って
>
> jdbcManager
> .from(OrderInfo.class)
> .innerJoin("orderItem")
> .innerJoin("orderItem.itemInfo")
> .id(id)
> .getResultList();
>
> のように SQL とほぼ同じように書くことができます.
>
> S2Jdbc-Gen を使っているなら,"orderItem" 等の
> リテラルを使わず
>
> jdbcManager
> .from(OrderInfo.class)
> .innerJoin(orderItem())
> .innerJoin(orderItem().itemInfo())
> .id(id)
> .getResultList();
>
> のようにすることもできます.
>
> http://s2container.seasar.org/2.4/ja/s2jdbc_typesafe.html
>
>
--
森本 將太
e-mail: [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内