[Seasar-user:15977] Re: [S2JDBC-Gen] Oracle10gXE の date型について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 10月 14日 (火) 17:25:20 JST


中村(taedium)です。

> Date 型に日時を保存しているのですが Dump-Data や Load-Data の際に
> 年月日までしか CSV に保存されませんし、読み込みもできません。
> 
> Oracle の Date 型は秒まで保存できるのですが、扱うようにすることは
> できますでしょうか?

Oracleでカラムを定義する際に、
DATE型ではなくTIMESTAMP型を使用すると
Gen-Entityタスク実行の際にエンティティのプロパティが

  @Temporal(TemporalType.Timestamp)
  public Date date;

となって生成されます。
この場合、CSVに秒もふくまれます。

現在のソースコードは、

  @Temporal(TemporalType.Date)
  public Date date;

となっていると思いますが、TemporalType.Dateを
TemporalType.Timestampに書き換えてもらっても大丈夫です。

> 別件ですが、Load-Data 時にデータを消すオプションがないのですが
> Truncate-Data などのタスクか、Load-Data にデータを消してからロード
> するというオプションがあればありがたいと思いました。

たしかにそうですね。
オプションをつける方向で考えてみたいと思います。

ただ、データを消してからのロードはMigrateタスクで
代用できる場合もあります。

SCHEMA_INFOテーブルとddl-info.txtで管理されている
いるバージョン番号が同じであれば、
Migrateタスクは同じバージョン間でスキーマの
再作成とCSVのロードを行います。

つまり、Dump-Dataのデフォルトの出力先を利用していれば
(デフォルトの出力先はMigrateの対象ディレクトリなので)
Migrateタスクの実行で、実質的にデータを消してからロード
を実現できます。
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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