[Seasar-user:1572] Re: 不完全なSELECT文が生成される
Yasuo Higa
higa
2005年 3月 8日 (火) 13:05:54 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:1571] 不完全なSELECT文が生成される" において、
"Asuka Ito <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> 伊藤と申します。
>
> S2Daoを使わせていただいているのですが、(おそらく)DAOに渡すBeanとDB上の
> テーブルの構造が一致していないとき、DAOが不完全なSELECT文を生成するよう
> なのですが、これは仕様でしょうか?
>
> 再現性が不明確で申し訳ないのですが、生成される不完全なSELECT文はいつも同
> じパターンでして
>
> SELEC FROM XXXX WHERE YYYY='ZZZZ'
>
これだけの情報じゃ良く分からないんですが、プライマリーキーやカラムの情報が
JDBCのメタデータから取得できてないんじゃないかと思います。
framework.util.DatabaseMetaDataUtilのgetPrimaryKeySet,getColumnSetに
ブレークポイントを当てて、動作を見るとその様子が確認できます。
S2Daoでは、テーブルの構造とBeanの構造が異なっていても構いません。
テーブルにないBeanのプロパティは無視されますが、テーブルのメタデータが
取得できない場合には、その判断が出来なくなります。
http://homepage3.nifty.com/seasar/s2dao.html#NoPersistentColumns
にあるようにNO_PERSISTENT_PROPSを明示的に指定すると、
JDBCのメタデータなしでもカラムの情報を判断できます。
また、http://homepage3.nifty.com/seasar/s2dao.html#IDAutoGenerate
にかかれているように、xxx_ID = "assigned";を使えば、
JDBCのメタデータなしで、プライマリーキーを指定することも出来ます。
---
ひがやすを(http://d.hatena.ne.jp/higayasuo/)
Seasar-user メーリングリストの案内