Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


6.5.3 時間を扱う際の注意事項

データベースに対してエンティティオブジェクトの登録,検索などの操作をする際に,次の条件をすべて満たすと,java.sql.SQLExceptionが発生するおそれがあります。

注※

時間を格納するクラスは次のどれかです。

  • java.sql.Timestamp

  • java.time.LocalTime

  • java.time.OffsetTime

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

java.sql.SQLExceptionが発生する場合は,小数秒部分のナノ秒を切り捨ててマイクロ秒にしてください。

ナノ秒を切り捨ててマイクロ秒にする例を次に示します。

(例1)java.time.LocalTimeクラスの小数秒部分のナノ秒を切り捨ててマイクロ秒にする場合
LocalTime lt = LocalTime.now();
lt = lt.truncatedTo(java.time.temporal.ChronoUnit.MICROS);
(例2)java.sql.Timestampクラスの小数秒部分のナノ秒を切り捨ててマイクロ秒にする場合
Timestamp ts = Timestamp.valueOf(java.time.LocalDateTime.now());
int before_nanos = ts.getNanos();
// ナノ秒部分を”000”に変換する。
int after_nanos = before_nanos/1000*1000;
ts.setNanos(after_nanos);