ConditionBean.使い始めると便利ですね.
でも,少し疑問が,,,
以下のケースで,
cb.setupSelect_Author();
するのと,しないとではどう違うのでしょうか?
ドキュメントの文面では理解できませんでした.
4. Where句に指定する条件で無限階層のForeignTableのColumnの指定をサポート
query().queryXxx().queryXxx().queryXxx()...と繋げることで「無限階層」に設定可能
ex) BOOKに対してForeignTableのAUTHORを結合してAUTHOR_AGEで30歳以上を検索。(AUTHOR_AGE降順)
/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// select ...
// from BOOK book
// left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
// where author.AUTHOR_AGE >= 30
// order by author.AUTHOR_AGE desc
//
final LdBookCB cb = new LdBookCB();
cb.query().queryAuthor().setAuthorAge_GreaterEqual(30);// ☆Point
cb.query().queryAuthor().addOrderBy_AuthorAge_Desc();
final java.util.List<LdBook> ls = bhv.selectList(cb); ex) BOOKに対してForeignTableのAUTHORを結合してAUTHORの名称を取得したいが、
AUTHOR_AGEが0歳のものは無効なものなので、結合に含めたくない検索。(AUTHOR_AGE降順)
→但し、AUTHOR_AGEが0歳のAUTHORを参照しているBOOKは検索されなければならない。
/- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// select book.BOOK_ID, book..., author.AUTHOR_ID as authorId_0, author...
// from BOOK book
// left outer join (select * from AUTHOR where AUTHOR_AGE != 0) author
// on book.AUTHOR_ID = author.AUTHOR_ID
// order by author.AUTHOR_AGE desc
//
final LdBookCB cb = new LdBookCB();
cb.setupSelect_Author();
cb.query().queryAuthor().inline().setAuthorAge_NotEqual(new BigDecimal(0));// ☆Point
cb.query().queryAuthor().addOrderBy_AuthorAge_Desc();
final java.util.List<LdBook> ls = bhv.selectList(cb);
- - - - - - - - -/