[Seasar-user:3966] [S2Dao]質問:EntityのTable-Annotationについて
kubo
[E-MAIL ADDRESS DELETED]
2006年 6月 26日 (月) 21:18:08 JST
久保です。
質問です。
EntityのTable-Annotationについて
例えば、以下のようなテーブル構造があって、
BOOK
BOOK_ID (PK)
BOOK_NAME
AUTHOR_ID (FK)
AUTHOR
AUTHOR_ID (PK)
AUTHOR_NAME
BOOK_IDとBOOK_NAMEとAUTHOR_NAMEを持ったBookAuthorなるBeanを作成し、
以下のようなSQLで値を取得するとします。(DaoもBookAuthorDaoを作成)
select BOOK.BOOK_ID, BOOK.BOOK_NAME, AUTHOR.AUTHOR_NAME
from BOOK
left outer join AUTHOR on BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
where BOOK.BOOK_ID = /*bookId*/
その時の、BookAuthor-Classに定義するTable-Annotationは、
何を設定するべきでしょうか?
A 「BOOK」を指定する。
→特にWARNはでない。
但し、SELECT句のBOOK_IDとBOOK_NAMEに
Aliasとして [as bookId] [as BookName]を
付けるとBeanに反映されない。
B 指定しない、もしくは、「BookAuthor」
→WARN:テーブル(BookAuthor)が見つかりません
でも、処理はうまくいく。
Aliasとして [as BookId] [as bookName]を付けても問題ない。
(BOOKに所属している列は全てそうなった)
この場合の例はちょっと簡単過ぎますが、
結合に結合を重ねて色々なTableの列をSELECT句に含める時や、
GROUP BYなどを利用するときは、「そのSQLに合わせた形のBean」を
作成することがよくあります。
何か推奨する指針があれば教えていただきたいです。
※ちなみにS2Dao.netでは「B」の場合は例外が発生します(テーブルが無いと)。
なので「A」しか選択肢が無いのですが・・・
--
kubo <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内