- - PR -
hibernateでoracleのdate型を登録
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-19 18:16
こんにちは。
いつも勉強させていただいております。 現在hibernateについて調査しております。 (根本的な原因はhibernateではないかもしれません。) Javaアプリケーションからoracleのdate型のカラムに対して 日付+時分秒の値を入れたいと考えております。 hibernateのマッピングでdate型と指定すると日付しか入らず、 time型と指定すると時分秒しか入りません。 timestamp型と指定すると
とエラーが発生します。 hibernateを使わずにJDBCで直接つなげて、PreparedStatementで以下のようにSQLを実行した場合でも同じエラーが発生します。
各バージョンは以下のようになります。 JDK1.4.2_05 Oracle8 Enterprise Edition Release 8.0.6.0.0 Oracle JDBC Driver version - 9.0.2.0.0 hivernate 2.1.8 過去スレを探したところ似たようなスレがあったのですが、 私の場合はoracleのsysdateにはこだわっていません。 いろいろ調べた結果DBとDriverのバージョンに問題がありそうな気がします。 しかし実際にはコネクション接続の部分はJNDIを使用し、 そのJNDIは既存他システムで使用しているため、DB,Driverのバージョンは 変更できません。 他に何かいい方法はないでしょうか? 以上よろしくお願い致します。 | ||||||||
|
投稿日時: 2006-06-20 09:12
calendar型を指定すればうまくいくのでは?
| ||||||||
|
投稿日時: 2006-06-20 10:11
返信ありがとうございます。
ご指摘していただいたようにcalendar型で実施したところ、 timestamp型を指定したときと全く同じエラーが発生しました。 calendar_dateにしたとことdateと同じように 日付だけの登録になりました。 またカスタム値型としてUserTypeをimplementsして
や
として無理やり登録してみようと試みたのですが結果は同じエラーが発生しました。 他に何か気になる点があればなんでもご指摘ください。 よろしくお願い致します。 | ||||||||
|
投稿日時: 2006-06-20 10:25
Oracle 提供するの JDBC ドライバをご使用なら、データベースの date 型に
対応する JDBC の oracle.sql.DATE を使用してはいかがかと。 ただし、 - JDBC ドライバのバージョンって 8.1.7.x, 9.0.1.x 9.2.0.x 10.1.0.x, 10.2.0.x となりますけど、9.0.2 ってのは無いはず。正しいバージョンは何になります? (9.2.0 だと接続先データベースのバージョンは 8.1.7 以降) - JDK1.4.2 に対応する JDBC ドライバは ojdbc14.jar になりますがこっちを使用して いますか? classes12.jar/zip は JDK1.2 か JDK1.3 のみです。 さっきの疑問点にからみますが、Oracle 9.2.0 の JDBC ドライバならともかく、 よもや 9.0.1 とかだったりするとそもそも JDK1.4 に対応した JDBC ドライバ自体 存在しないです。 _________________ もしもし@RMAN 友の会 | ||||||||
|
投稿日時: 2006-06-20 11:38
返信ありがとうございます。
使用driverはclasses12.jarです。 MANIFET.MFのSpecification-Versionを見ましたのでversionは9.0.2で間違いないと思います。 もしかしたら見方が間違ってるかもしれません・・・。すいません。 しかし問題はversion以前の問題でしたね・・
知りませんでした。 勉強不足を痛感します。 たしかに今MANIFET.MFを見てみるとその事が記述されてました。 既存の多数のシステムではJDK1.4.2なのにclasses12で動いています。 危険ですね。 ojdbc14.jar に変更したら上手く出来るかどうかまた後程レスします。 ありがとうございます。 [ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2006-06-20 11:45 ] [ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2006-06-20 11:46 ] | ||||||||
|
投稿日時: 2006-06-20 13:23
ドライバー 9.2.0をダウンロードして同じ事をやってみました。
結果は同じエラーが発生しました。 ドライバー 9.2.0のMANIFET.MFのSpecification-Versionを見たら 9.0.2.0.0と記述されていましたので9.0.2.0.0=9.2.0なのかなと予想します。 ということは今使っているJDBCドライバーのバージョンは DBのバージョンもJavaのバージョンもサポートしていないって事ですね 危険なにおいがぷんぷんします。 なにはともあれ今回みなさまのおかげで今使っているDBとJavaを正式にサポートする JDBCドライバーは存在しないという事がわかりました。 hibernateの導入も今回は見送ります。 どうもありがとうございました。 |
1