[Seasar-user:8479] [dbflute0.5.0] SQLの結果がEntityに格納されない

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 6月 19日 (火) 21:22:10 JST


いつもお世話になっております。
丸岡です。

dbflute0.5.0のsql2Entityで生成したEntityクラスに
期待した値がセットされない現象が発生しています。
どなたか、解決方法をご存知の方がいらっしゃったら教えていただけないでしょうか?

以下、再現手順です。

(1)テーブルA,BをCREATE
  テーブルAのカラム(COL1,COL4)
  テーブルBのカラム(COL1,COL2,COL3)
(2)dbfluteのgenerate.bat でスキーマ内のテーブルのDAO、Entityを生成
(3)テーブルAとテーブルBを結合したSQLを作成
 a_getXXX.sql
  
  SELECT A.COL1, B.COL2 
  FROM A 
    INNER JOIN B ON
      A.COL1 = B.COL1
  WHERE
    A.COL4=/*param1*/'1'
 --#AbEntity#

(4)sql2entity.batを実行してAbEntityを生成
(5)上記(2)で生成された exdao.ADaoに下記メソッドを定義
  @Arguments( { "param1"})
  public AbEntity findXXX(String param1);
  
(6)メインクラスから上記で定義したメソッドを実行
  AbEntity ent = ADao.findXXX("hoge");


すると以下のログが出力されます。

DEBUG 2007-06-19 20:43:18,750 [http-8080-Processor25] BEGIN sios.exdao.ADao#findXXX(hoge)
DEBUG 2007-06-19 20:43:18,750 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-06-19 20:43:18,750 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-06-19 20:43:18,750 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-06-19 20:43:18,750 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-06-19 20:43:18,760 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-06-19 20:43:18,931 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-06-19 20:43:20,633 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-06-19 20:43:20,633 [http-8080-Processor25] SELECT A.COL1, B.COL2 
  FROM A 
    INNER JOIN B ON
      A.COL1 = B.COL1
  WHERE
    A.COL4='hoge'
 --#AbEntity#
DEBUG 2007-06-19 20:43:20,703 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-06-19 20:43:20,703 [http-8080-Processor25] END sios.exdao.ADao#findXXX(hoge) : [{a_col1_data,null}]
DEBUG 2007-06-19 20:43:20,853 [http-8080-Processor25] トランザクションをコミットしました

####################################
テーブルBのCOL2にも値が登録されているのにもかかわらず、
SQLの実行結果(ログの下から2行目)にはnullが返ってきています。
ログ出力されたSQLを実行すると、B.COL2は取得できています。

ADaoにメソッドを定義した場合、AEntity に設定されていないプロパティには
SQLの結果がセットされないような動きをしています。
この現象は仕様なのでしょうか?
SQL2Entityのドキュメント内に適切なDaoにメソッドを定義と書かれていたので、
問題ないのかと思っていました。

また、複数のテーブルから値を取得する場合は、どのようにすればよろしいのでしょうか?

以上、よろしくお願い致します。




Seasar-user メーリングリストの案内