IBM DB2のTimestampデータ型ですが、java.util.Dateとしてマップする必要があるデータベースから値をロードしていますJSF GUI用ですJPAにタイムスタンプと言うだけで、それを管理すると思った。しかしDB内のタイムスタンプとEntity内のjava.util.DateがOpenJPAでロードされたときに丸めの問題を引き起こします
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DATE")
private Date myTimeStampAsDate;
、データベース内の日付9999-12-31午後11時59分59秒がある場合、それは10000-01-01 00日に私のエンティティで切り上げとなります:私はそれをこのようにしました: 00
実際のjava.sql.Timestampとしてマップすると、ミリ秒単位でも完全にロードされます。この "丸め動作"を回避するために何をする必要がありますが、私のエンティティとGUIのためにjava.util.Dateを保持していますか?
です。暗黙的な振る舞いがありますか?エンティティが 'java.sql.Timestamp'を使用し、JSFページが' Timestamp.getTime() '(ミリ秒を吐き出します)を呼び出すことによって新しい' Date'を作成するとどうなりますか?あるいは、タイムスタンプをフォーマットするだけでいいですか? –
私はJSFに新しい日付を作成させようとしますが、この解決策は操作されたセッターを必要とすることを意味します。これは良いオプションではありません。この問題は単なるフォーマット上の問題ではありません。私はそれをデバッグし、独立したJUnitテストで動作を再確認しました。この丸めがロードされているので、別の値です!あなたの提案に感謝します。 GUIから新しい日付の動作を教えてください – jonnie119
ああ、あなたのJSFはエンティティとは異なるJVM上で動作していますか?うるう秒のようなものがありますが、これはJVMの異なるバージョン/異なるバージョンで実装される場合と実装されない場合があります。 –