Oracle Dates で問題が発生しました。OracleDB に挿入した後、Java アプリケーションの事前定義された日付が異なるようです。
JPA エンティティ経由で挿入:
entity.setDateOfCreation(new Date(System.currentTimeInMillis()));
// 1350565985000
コミットして取得した後:
entity.getDateOfCreation() // 1350565985047
なぜこれが違うのですか?
オラクルは、特定の日付オブジェクトをこれらの正確なミリ秒でデータベースに挿入するだけだと思いました。しかし、明らかにそうではありません。遅延が最小限であるため、指定された Date を独自の Date でミリ秒単位で「上書き」しているように見えます (@GeneratedValue は使用していませんが)。