[Seasar-user:7976] [S2DAO]OracleのTIMESTAMP WITH LOCAL TIME ZONE

WAKABAYASHI Ryoji [E-MAIL ADDRESS DELETED]
2007年 5月 31日 (木) 17:53:49 JST


若林と申します。
お世話になります。

Oracle10gでTIMESTAMP WITH LOCAL TIME ZONEを使った表を定義して
S2DAOでselectしたところ、以下のような結果になりました。

Caused by: java.sql.SQLException: Session Time Zone not set!
  at
oracle.jdbc.driver.TimestampltzAccessor.getTimestamp(TimestampltzAccessor.java:271)
  at
oracle.jdbc.driver.OracleResultSetImpl.getTimestamp(OracleResultSetImpl.java:796)
  at oracle.jdbc.driver.OracleResultSet.getTimestamp(OracleResultSet.java:1661)
  at
org.seasar.extension.jdbc.impl.ResultSetWrapper.getTimestamp(ResultSetWrapper.java:1010)

原因を調べたところ、TIMESTAMP WITH LOCAL TIME ZONEを使う場合、SQL実行前に
OracleConnection-のsetSessionTimeZoneメソッドでTimeZoneをセットしておかない
といけないようです(Oracle JDBC API Referenceに記載あり)。
S2DAOで何か対処方法はありますでしょうか?
Seasar2.3.7、S2DAO1.0.31, S2JSF1.0.15を使用しています。

よろしくお願い致します。



Seasar-user メーリングリストの案内