[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 による件数の取得との両方を実行できるようにする.[Seasar-user:12683] このアイディアを拝借するかも. 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 from (~) で囲んで実行することにしようかと. |