[Seasar-user:15747] Re: [S2Dao]select文の結果を任意のクラスに格納したい
大屋茂士将
[E-MAIL ADDRESS DELETED]
2008年 9月 12日 (金) 18:28:29 JST
中村(taedium)様
大屋です。お世話になっております。
ご回答ありがとうございます。
質問内容の例を簡単にし過ぎたのですが
public class A {
public String id;
public B b1;
public B b2;
}
のような時に以下のような一回のSQLでデータを入れたいと思っておりました。
select id , x as ` b1.c`, y as `b2.c` from a 〜
中村(taedium)様が示された内容からすると一度のSQLで済ませるには、
1) 二度 selectX();を呼んでAを作る
2) もしくは別途クラスを
public class ATemp {
public String id
public String b1_c;
public String b2_c;
}
の様に作り、Aへ移し変えるということになるでしょうか。
想定としては、Aクラスのデータをリストでもらうインタフェースも有り得るため、
その場合は2) を選択することになりそうです。
2008/09/12 17:13 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>:
> 中村(taedium)です。
>
>> データベースアクセスにS2Daoを採用し、インタフェースのみのDAOと、SQLファイルを使って開発する予定です。
>> このような方式をとった場合、検索結果を任意のクラスに格納することは可能でしょうか?
>>
>> 例えば、Entityではないクラス以下のようなA・Bクラスと、
>> Daoがあり、
>>
>> public class A {
>> public B b;
>> }
>>
>> public class B{
>> public String c;
>> }
>>
>> public interface ADao {
>>
>> public A selectX();
>> }
>>
>> ADao_selectX.sql には
>> select x as ` a.b.c` from a ~
>> のように書かれていた場合に、
>>
>> A a = dao.selectX();
>> String result = a.b.c ;
>> ...
>>
>> このようにアクセスしたいと考えています。
>
> 挙げていただいた例では不可能ですが、
> 次のように結果をAクラスではなくBクラスで受け取るならば可能です。
> SQLの修正も必要です。
>
> public class B{
> public String c;
> }
>
> public interface ADao {
> public B selectX();
> }
>
> というクラスがあるとして、
> ADao_selectX.sqlに
>
> select x as c from a
>
> とあれば
>
> B b = dao.selectX();
> String result = b.c ;
>
> と取得できます。
>
> --
> Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
大屋 茂士将
Seasar-user メーリングリストの案内