JDBC と Postgres で何かが起こったときのタイムゾーンを保存したい場合は、タイムスタンプとは別にタイムゾーンを保存する必要があるようです (おそらく私が間違っているかもしれません)。
つまり、ORM/JDBC/JPA に Java Calendar(または Joda DataTime) を指定し、タイムゾーンAmerica/New_Yorkを Postgrestimestampzフィールドに指定することをお勧めします。Calendarそして、サーバーのタイムゾーン (またはデフォルトで UTC) に関係なく、取得時にwith timezone が返されることを期待しますAmerica/New_York。しかし、ほとんどの JDBC コード (およびそれに依存するものは発生しない) を見るだけです。
これは正しいです?
postgres がサポートしているときに tz を別のフィールドに格納する必要があるというのはばかげているように思えます。
したがって、次の 2 つのオプションしかないようです。
timestampzPostgres 列を a として選択しjava.util.String、解析します。- タイムゾーンを別のフィールドとして保存します。
オプション番号 1 と 2 では、SQL マッピング / ORM ライブラリに何らかの変換インターセプターが必要になります。
- JDBC に最適なソリューションは何ですか?
- JPA の最適なソリューションは何ですか (JDBC と異なる場合)?