Locked History Actions

Diff for "Play/AnormPostgreSQL"

Differences between revisions 1 and 2
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
PostgreSQLに対してAnormのMagicを使うのには問題がある。以下を参照。
Line 4: Line 5:
[[https://groups.google.com/forum/#!topic/play-framework/5iMpoKpAHRQ]]。
わかっているなら書いておいてくれれば悩まずに済むものを。。。。
[[https://groups.google.com/forum/#!topic/play-framework/5iMpoKpAHRQ]]

要するに、なぜかPostgreSQLのConnection実装のgetTableName(int column)というメソッドが常に空文字列を返してしまうため、anormの側は結果セットの列がどのテーブルのものであるかを認識できないということらしい。

postgreSQLのjdbcドライバを改良することにより、これをマトモにできるという(が、ほんとにこれだけでいいのか?)

== PostgreSQLドライバの改良 ==

 * ソースコードを取得する。
{{{
cvs -z3 -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/jdbc co -P pgjdbc
}}}
 * pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.javaを編集し、getTableNameメソッドの「return "";」を「return getBaseTableName(column);」に変更する。
 * antでビルドすると、jarsディレクトリにpostgresql.jarが作成される。

AnormでPostgreSQLにアクセス

PostgreSQLに対してAnormのMagicを使うのには問題がある。以下を参照。

https://groups.google.com/forum/#!topic/play-framework/5iMpoKpAHRQ

要するに、なぜかPostgreSQLのConnection実装のgetTableName(int column)というメソッドが常に空文字列を返してしまうため、anormの側は結果セットの列がどのテーブルのものであるかを認識できないということらしい。

postgreSQLのjdbcドライバを改良することにより、これをマトモにできるという(が、ほんとにこれだけでいいのか?)

PostgreSQLドライバの改良

  • ソースコードを取得する。

cvs -z3 -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/jdbc co -P pgjdbc
  • pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.javaを編集し、getTableNameメソッドの「return "";」を「return getBaseTableName(column);」に変更する。
  • antでビルドすると、jarsディレクトリにpostgresql.jarが作成される。