[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 メーリングリストの案内