[Seasar-user:16540] Re: [SAStruts]java.sql.Date型でデータの時刻部分が消えてしまう

須賀祐一 [E-MAIL ADDRESS DELETED]
2008年 12月 20日 (土) 10:54:24 JST


須賀です。

小林さん、ご教授いただきありがとうございました。

すみません。
標準SQLのDATE型とORACLEのDATE型の違いなどあまり意識せず使っていました。
よく仕様などを確認してみましたがその通りですね。

今までの習慣で、SQLのDATE型は全て"java.sql.Date"で定義していました。
今回は、時刻を扱うクラスも少ないので"java.util.Date"に修正したいと思います。

お手数をおかけしました。



Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date:    Fri, 19 Dec 2008 20:30:38 +0900
> From:    須賀祐一 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:16538] [SAStruts]java.sql.Date型でデータの時刻部分が消えてしまう
>
>   
>> エンティティクラスで日付時刻を"java.sql.Date"で宣言した場合、
>> 時刻のデータが無くなってしまいます。
>>     
>
> java.sql.Date は標準 SQL の DATE 型に相当する,
> 日付のみを保持するためのクラスです.
> # Oracle の DATE 型とは異なります.
>
> 同様に java.sql.Time は時刻のみを保持するクラスで,
> 日付と時刻を保持するのは java.sql.Timestamp です.
>
> java.util.Date を使って日付と時刻を保持する場合は
>
>                        vvvvvvvvv
> @Temporal(TemporalType.TIMESTAMP)
> @Column(nullable = true, unique = false)
> public java.util.Date beginningDate;
>
> となります.
>
> http://s2container.seasar.org/2.4/ja/s2jdbc_entity.html#時制定義
>
> java.sql.〜 型を使う場合は @Temporal を
> 指定する必要はありません.
> 指定しても無視されます.
> 日付と時刻を保持するなら,
>
> @Column(nullable = true, unique = false)
> public java.sql.Timestamp completionDate;
>                 ^^^^^^^^^
>
> となります.
>
>
>   



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