[Seasar-user:3792] Re: [S2Dao] PostgreSQL INTERVAL型
Hirotaka HONMA
[E-MAIL ADDRESS DELETED]
2006年 6月 7日 (水) 16:57:12 JST
ほんまです。
On 6/5/06, Hirotaka HONMA <[E-MAIL ADDRESS DELETED]> wrote:
> そもそもPreparedStatemantでinterval型へバインドできないので
> したら他の手段を考える必要がありますし、バインドできるのでし
> たらPreparedStatemantのメソッドと引数の型がわかれば何らかの
> 方法で対応できると思っています。
7系のPostgreSQL JDBCドライバでは、PreparedStatement#setString
やsetTimeでバインドできるのですが、8系のドライバにするとバイ
ンドできなくなりました。
setString, setDate, setTimestamp, setTimeなど試してみたので
すがダメで、PostgresのPGInterval型でsetObjectすればOKなよう
です。
というわけで回避方法は...
1. 7系のJDBCドライバを使う (今は8系のをお使いですよね?)
2. SQLをCASTするように変更する
insert into foo (id, value) values (?, ?)
↓
insert into foo (id, value) values (?, CAST (? AS INTERVAL))
3. PGInterval型へ変換してPreparedStatement#setObjectする
ValueTypeを作成し、S2Daoへ登録する
の3通りがあると思います。
Seasar-user メーリングリストの案内