[CONTAINER-169] S2JDBC の SQL (ファイル含む) を使った問い合わせで,一つの SQL で通常の問い合わせと SEELCT COUNT(*) による件数の取得との両方を実行できるようにしました.[Seasar-user:12683] Created: 2008-01-30 Updated: 2008-02-08 Resolved: 2008-02-08 |
|
| Status: | Resolved |
| Project: | S2Container |
| Component/s: | S2JDBC |
| Affects Version/s: | 2.4.22 |
| Fix Version/s: | 2.4.23 |
| Type: | Improvement | Priority: | Major |
| Reporter: | koichik | Assignee: | koichik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
S2JDBC の SQL (ファイル含む) を使った問い合わせで,一つの SQL で通常の問い合わせと SEELCT COUNT このアイディアを拝借するかも. jdbcManager.selectBySqlFile("xxx.sql").getCount();
のようにすると,SQL ファイルの IF コメントで使えるパラメータを (S2JDBC が) 設定するとか. |
| Comments |
| Comment by koichik [ 2008-02-08 ] |
|
API を変更してコミットしました. long count = jdbcManager.selectBySql(Long.class, "select ~").getCount(); だったのを long count = jdbcManager.getCountBySql("select ~"); にしました. |
| Comment by koichik [ 2008-02-08 ] |
|
getCountBySql(), getCountBySqlFile() に変更するため再オープン. |
| Comment by higa [ 2008-02-02 ] |
|
getCountBySql, getCountBySqlFileのほうがいいかも。 AutoSelectはいろいろオプションを指定する可能性があるけど、 |
| Comment by koichik [ 2008-02-02 ] |
|
一応対応しました. が,API は再考の余地ありかも. long count = jdbcManager .selectBySql(Long.class, "select ~") .getCount(); としているのだけど,getCount() の戻り値型は long 決め打ち (SQL 自動生成では戻り値型を指定しないため) なので,selectBySql() の第 1 引数に Long 以外を指定すると ClassCastException になります. long count = jdbcManager .getCountBySql("select ~"); とかの方がいいかも? |
| Comment by koichik [ 2008-01-31 ] |
|
IF コメント方式は S2JDBC でサポートしなくても利用者レベルで使えるので, S2JDBC では SQL を select count |