[Seasar-user:1976] Re: S2Dao でTAB LEアノテーションを間違えると

suga ko.suga
2005年 5月 16日 (月) 12:41:43 JST


suga です。

05/05/16 に Asuka Ito<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 伊藤です。
> 
> ちょうど僕も同じようなことをしてました。


私も間抜けなことをやってしまいました。

setupAutoSelectList で NullPointerException が出ました。
設定が間違っているのは分かるのですが、どこで間違っているのか分かりません。
getRelationPropertyType(i) が null を返していたのですが、原因は N:1 の
指定ミスです。最初に正しく定義して、その後で「プロパティ名が良くないな」
と変更したのですが、RELNO と RELKEYS アノテーションを変更し忘れていたの
です。どこが間違いなのかを教えてもらえると嬉しいですけど、判断は難しいと
思います。

というわけで、現状はログに出た SQL を見るくらいしか手がありませんよね。
# 上記の場合は SQL が出る前だったので困りましたが。


> 何をしたときの動作が未定義なのかを明確化するとか

基本的に未定義な動作は無くて、「自動」になりますよね。

明示的な設定 (アノテーションや .sql ファイル) が無ければ自動生成が
行われるというのは、S2Dao の利点です。
しかし自動なだけに、(誤用から) 意図と違う動作をする場合があり、これは
利点の裏返しな難点でしょう。

ある程度までは Kijimuna のようなツールを作れば防げるかもしれませんが、
作るのはすごく大変でしょう (^^;


ドキュメントチームには
「S2Dao で正常動作しない場合にまずチェックするポイント」
というリストを作ってもらうと良いかもしれません。

# はーい、作りまーす。と自作自演。

-- 
suga ( [E-MAIL ADDRESS DELETED] )



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