[Seasar-user:3741] Re: [S2Dao]RELNO 設定時の“結合なしSQLの結果”の仕様について

Yasuo Higa [E-MAIL ADDRESS DELETED]
2006年 6月 2日 (金) 10:05:23 JST


ひがです。

> 本間です。
> 
> > <B>
> > では、「DaoにてSQL自動生成で検索」ではなく、以下のように
> > SQLアノテーションにて検索をします。
> > 
> >     public static final String getListAll_SQL 
> >       = "select BOOK_ID, BOOK_NAME, AUTHOR_ID from BOOK";
> > 
> > これは、BOOKだけを純粋に検索したい場合となります。
> > 
> > この結果の個人的な期待は:
> >   BOOKエンティティはAUTHORエンティティを保持しない(nullが返る)、
> > 
> > ですが、実際は:
> >   BOOKエンティティはAUTHORエンティティを保持しており、
> >   そのAUTHORエンティティのAUTHOR_IDにはDB上の「著者ID」が存在します。
> >   そのAUTHORエンティティのAUTHOR_NAMEはnull。
> > 
> > です。
> 
> 私も、Book#getAuthor()はnullになるのが自然かな、と思います。
> 
> 現行の動きが意識してのモノなのかは私にはわからないので(私が
> コミッタになる前のことなので)、できたらひがさんか上原さんに
> コメント頂けると有り難いです。
> 
> そして、意識せずに現行の動きになっているのでしたら、nullを返
> すようにしようと思うのですが、どうでしょうか?
> 
今の動きは、RELNOがあり、その関連IDが存在するなら、
その関連エンティティを返すです。
ということで、意識してのことです。
関連エンティティを処理して欲しくないときは、
nojoinのようなアノテーションを用意するつもりだったのですが、
そのような要求がなかったのでそのままになっています。

ただし、その仕様で良いのかどうかは別の話です。

SQLアノテーション、もしくはSQLファイルがあるときに、
SQLに関連エンティティの記述がない場合には、
関連エンティティの処理はしないという風に
仕様を変えても良いのではないかと思います。

特にこのMLで反対がなければ、nullを返すようにしましょう。

Yasuo Higa
The Seasar Foundation



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