今日私は奇妙なエラーに遭った、実際に私の会社は移行する予定です
PostgreSQL 8.2から最新のPostgreSQLへの既存のj2ee Webアプリケーション
8.3。しかし、私はPostgreSQL 8.3を適切にセットアップした後、Webを起動します
アプリケーション、私は次のエラー+
org.postgresql.util.PSQLException:ERROR:演算子が存在しません:smallint = character varying
それはデータ型不一致エラーのように思える、面白いそれは正常に動作しています
PostgreSQL 8.2でもPostgreSQL 8.3ですか?私は数時間のグーグル・グーグルで、
おそらく、暗黙的なキャストの変更を行う必要があります
8.3。それはPostgreSQL 8.3のようなものです。
チェックデータ型。
これにより、多くの副作用が解消されます。
valuelistにcoloumを比較させ、PostgreSQLにキャストをさせる
自動的に。
これはもはやPostgreSQL 8.3ではサポートされなくなりました(おそらく)。ここで私は提供する
上記のエラーを解決する2つのソリューション。
溶液
** 1)前に適切なデータ型にキャストするためにsetIntまたはsetLongを使用する PostgreSQLに文を送る** ** 2):: smallintのような明示的なキャストを使う 例えば ** ** .... select ** from score where scordid =?::smallint .... あなたが私のようなvaluelistを使用している場合は、適切なデータ型にStandardStatamentBuilderをオーバーライドするためにstatementBuilderをラップする必要があります。 .... .... あなたに働くことを願っています。 link://tag/postgresql/[postgresql]