Add date-time module: Instant vs LocalDateTime vs OffsetDateTime vs ZonedDateTime round-tripped across JVM time zones on H2 and PostgreSQL

Hibernate 7.4.14.Final (plus an 8.0.0.Beta4 preview run), H2 2.5.252, PostgreSQL 17.11 in Docker.
Same-JVM and cross-zone round trips, @TimeZoneStorage modes, DST gap/overlap, precision
(precision vs secondPrecision), hibernate.jdbc.time_zone, java_time_use_direct_jdbc default flip.
Supersedes the date/time experiments of docs/13 (7.4.5); chapter 13 is unchanged.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ic4b7rnC7jppGGdHGESvy
This commit is contained in:
2026-10-29 00:56:54 +00:00
committed by Claude
co-authored by Claude Sonnet 5.5
parent c9faf35e61
commit ef2d2aa8ea
149 changed files with 2374 additions and 0 deletions
+1
View File
@@ -341,6 +341,7 @@ Modules with their own `pom.xml` that run plain Hibernate without the Spring Boo
| Module | What it covers |
|---|---|
| [`date-time`](date-time/) | `Instant` vs `LocalDateTime` vs `OffsetDateTime` vs `ZonedDateTime` round-tripped across JVM time zones on H2 and PostgreSQL: what survives, `@TimeZoneStorage`, DST gaps, precision, and the Hibernate 8 `java_time_use_direct_jdbc` default (Hibernate `7.4.14.Final`, Hibernate `8.0.0.Beta4` preview) |
| [`h8-preview`](h8-preview/) | Hibernate ORM 8 beta against Hibernate 7: what breaks |
| [`inheritance`](inheritance/) | `SINGLE_TABLE` vs `JOINED` vs `TABLE_PER_CLASS` vs `@MappedSuperclass`: generated DDL, SQL, failures and timings (Hibernate `7.4.13.Final`) |
| [`locking`](locking/) | Optimistic (`@Version`, retries) vs pessimistic (`PESSIMISTIC_WRITE`, `NOWAIT`, `SKIP LOCKED`) locking, lost updates and deadlocks on H2 (Hibernate `7.4.14.Final`) |
+71
View File
@@ -0,0 +1,71 @@
# date-time
Companion module for the ankurm.com article **Hibernate 7 Date and Time Mapping: Instant vs LocalDateTime vs
OffsetDateTime (What Round-Trips)**. Plain Hibernate (no Spring). One moment is written into every `java.time`
column, then read back in a new session, in a JVM with a different default time zone, on two databases.
Each test writes what it observed to `output/` and asserts the same facts.
This module supersedes the date/time experiments in the main project's
[`docs/13-date-and-time-mapping.md`](../docs/13-date-and-time-mapping.md) (Hibernate 7.4.5, H2 and HSQLDB only,
every run inside one JVM zone). Chapter 13 is left as it was; where this module disagrees with it, this module is newer.
## Versions
| Component | Version | Notes |
|---|---|---|
| Hibernate ORM | `7.4.14.Final` | latest 7.x GA on Maven Central on 2026-10-28 |
| Hibernate ORM (preview run) | `8.0.0.Beta4` | pre-release, published 2026-10-28; `-Dhibernate.version=8.0.0.Beta4 -Dpersistence.version=4.0.0-M7 -Dh.label=h8` |
| Jakarta Persistence | `3.2.0` (`4.0.0-M7` for the Hibernate 8 run) | |
| H2 | `2.5.252` | file database, so a second JVM can read what the first wrote |
| PostgreSQL | `17.11` (`postgres:17-alpine` in Docker), driver `org.postgresql:postgresql:42.7.14` | server `TimeZone` is `UTC`; see `output/00-environment.txt` |
| HSQLDB | `2.7.4` | only the precision comparison |
| JUnit Jupiter / AssertJ | `6.0.3` / `3.27.7` | |
| Java | `25` (Temurin 25.0.5+8) | |
## Run
```bash
./scripts/run-all.sh # whole matrix; needs Docker for PostgreSQL. H7_ONLY=1 skips the Hibernate 8 beta runs
mvn test # H2 only, in your JVM's own time zone
mvn test -Ddt.jvmargs=-Duser.timezone=America/New_York
```
`run-all.sh` runs the suite for each database in JVM zones `Asia/Kolkata` (+05:30, no DST) and
`America/New_York` (DST), then a **cross-zone** pass (write in one JVM zone, read in a JVM with the other), then
`hibernate.type.java_time_use_direct_jdbc=true` on Hibernate 7, then the Hibernate 8 beta with its default and with
the flag set back to `false`.
## Output
File names are `NN-topic-<db>-<JVM zone>[-variant][-directtrue|-directfalse]-<h7|h8>.txt`. The header of every file states the
Hibernate version, database version, JVM zone and the effective `java_time_use_direct_jdbc`. `directtrue` / `directfalse`
mean the flag was set explicitly; no suffix means that Hibernate line's default (`false` on 7.4, `true` on 8.0.0.Beta4).
| Prefix | What it shows |
|---|---|
| `00-environment` | JDK, PostgreSQL server and image digest, drivers |
| `01-roundtrip` | one moment in `Instant`, `LocalDateTime`, `OffsetDateTime` (default, `NATIVE`, `NORMALIZE`, `NORMALIZE_UTC`, `COLUMN`): in, out, equal?, same instant?, raw column text. `same-jvm` or `written-in-<zone>` (cross-zone) |
| `02-dst` | a `LocalDateTime` inside New York's spring-forward gap and one inside the fall-back overlap |
| `03-precision` | nanoseconds written, what comes back (H2, PostgreSQL, HSQLDB) |
| `04-zoned` / `04-zoned-failure` | `ZonedDateTime` round trip; the PostgreSQL + direct JDBC bind and read failure on Hibernate 7.4 |
| `05-ddl` | column types Hibernate generated, from `information_schema` |
| `06-jdbc-time-zone` | `hibernate.jdbc.time_zone` set to the zone the JVM is not in |
| `07-preferred-instant-jdbc-type` | `TIMESTAMP` vs `TIMESTAMP_UTC` for `Instant` |
| `08-column-precision` | `@Column(precision)` vs `@Column(secondPrecision)` |
| `09-legacy-types` | `java.util.Date` without `@Temporal`, `Year`, `YearMonth`, `Duration` |
| `10-javap-*` | enum constants, setting names and `@Temporal` deprecation read from the jars |
## Sources
| File | Role |
|---|---|
| `src/main/java/com/ankurm/datetime/Event.java` | the entity with one column per mapping |
| `src/main/java/com/ankurm/datetime/ZonedEvent.java` | `ZonedDateTime` on its own entity (it cannot be bound on one driver setting) |
| `src/main/java/com/ankurm/datetime/Probe.java`, `PrecisionEvent.java`, `Legacy.java` | narrow entities for the edge cases |
| `src/main/java/com/ankurm/datetime/Db.java` | builds the `SessionFactory` for H2 / PostgreSQL / HSQLDB from system properties |
| `src/test/java/com/ankurm/datetime/RoundTripTest.java` | the round trip, same-JVM and cross-zone |
| `src/test/java/com/ankurm/datetime/EdgeCasesTest.java` | DST gap and overlap, precision, generated DDL |
| `src/test/java/com/ankurm/datetime/ZonedTest.java`, `JdbcTimeZoneTest.java`, `TypesTest.java` | the rest |
This module has its own `pom.xml` and does not use the Spring Boot parent of the main `hibernate-demo` project. The
Hibernate 8 results are from a beta and can change before 8.0 final.
+8
View File
@@ -0,0 +1,8 @@
# environment for this run of scripts/run-all.sh
openjdk version "25.0.5" 2026-10-20 LTS
OpenJDK Runtime Environment Temurin-25.0.5+8 (build 25.0.5+8-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.5+8 (build 25.0.5+8-LTS, mixed mode, sharing)
postgres server: PostgreSQL 17.11 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
postgres image: postgres@sha256:266d3c257594e195b309ae9d1805e54c788f1d7b375f56bf6c367aac6c917e7b
postgres server TimeZone setting: UTC
jdbc drivers: org.postgresql:postgresql:42.7.14, com.h2database:h2:2.5.252, org.hsqldb:hsqldb:2.7.4
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T04:30-04:00 | equals false | same instant true | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 08:30:00+00
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE_UTC out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T04:30-04:00 | equals false | same instant true | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 08:30:00+00
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE_UTC out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,11 @@
# 01-roundtrip (written-in-Asia_Kolkata)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written by another JVM whose default zone was Asia/Kolkata; this JVM only reads (see scripts/run-all.sh)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00-04:00 | equals false | same instant false | raw 2026-06-15 14:00:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 08:30:00+00
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 08:30:00+00
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE_UTC out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,11 @@
# 01-roundtrip (written-in-America_New_York)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written by another JVM whose default zone was America/New_York; this JVM only reads (see scripts/run-all.sh)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 08:30:00+00
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T04:30+05:30 | equals false | same instant false | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 08:30:00+00
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 04:30:00-04
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE out 2026-06-15T04:30-04:00 | equals false | same instant true | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 04:30:00-04
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 04:30:00-04
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE out 2026-06-15T04:30-04:00 | equals false | same instant true | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 04:30:00-04
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE out 2026-06-15T04:30-04:00 | equals false | same instant true | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,11 @@
# 01-roundtrip (written-in-Asia_Kolkata)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written by another JVM whose default zone was Asia/Kolkata; this JVM only reads (see scripts/run-all.sh)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 04:30:00-04
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime NORMALIZE out 2026-06-15T14:00-04:00 | equals false | same instant false | raw 2026-06-15 14:00:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 04:30:00-04
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,10 @@
# 01-roundtrip (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,11 @@
# 01-roundtrip (written-in-America_New_York)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written by another JVM whose default zone was America/New_York; this JVM only reads (see scripts/run-all.sh)
# written: Instant 2026-06-15T08:30:00Z, LocalDateTime 2026-06-15T14:00, OffsetDateTime 2026-06-15T14:00+05:30 (all the same moment; the LocalDateTime is the Kolkata wall clock)
Instant out 2026-06-15T08:30:00Z | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
LocalDateTime out 2026-06-15T14:00 | equals true | same instant n/a | raw 2026-06-15 14:00:00
OffsetDateTime default out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NATIVE out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime NORMALIZE out 2026-06-15T04:30+05:30 | equals false | same instant false | raw 2026-06-15 04:30:00
OffsetDateTime NORMALIZE_UTC out 2026-06-15T08:30Z | equals false | same instant true | raw 2026-06-15 14:00:00+05:30
OffsetDateTime COLUMN out 2026-06-15T14:00+05:30 | equals true | same instant true | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T03:30 | equals false | raw 2026-03-08 03:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T03:30 | equals false | raw 2026-03-08 03:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T03:30 | equals false | raw 2026-03-08 03:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T03:30 | equals false | raw 2026-03-08 03:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,6 @@
# 02-dst (local-date-time)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# New York springs forward 2026-03-08 02:00 -> 03:00 and falls back 2026-11-01 02:00 -> 01:00
plain wall clock in 2026-06-15T14:00 | out 2026-06-15T14:00 | equals true | raw 2026-06-15 14:00:00
gap 02:30 on 2026-03-08 in 2026-03-08T02:30 | out 2026-03-08T02:30 | equals true | raw 2026-03-08 02:30:00
overlap 01:30 on 2026-11-01 in 2026-11-01T01:30 | out 2026-11-01T01:30 | equals true | raw 2026-11-01 01:30:00
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T14:00:00.123457+05:30
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T14:00:01+05:30
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T14:00:00.123456+05:30
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database HSQL Database Engine 2.7.4, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:00.999999 | Instant 2026-06-15T08:30:00.999999Z | OffsetDateTime 2026-06-15T08:30:00.999999Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,7 @@
# 03-precision
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: 14:00:00.<nanos> local / 08:30:00.<nanos>Z / 14:00:00.<nanos>+05:30 ; read back below (columns are timestamp(6))
nanos .123456789 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .123456500 -> LocalDateTime 2026-06-15T14:00:00.123457 | Instant 2026-06-15T08:30:00.123457Z | OffsetDateTime 2026-06-15T08:30:00.123457Z
nanos .999999999 -> LocalDateTime 2026-06-15T14:00:01 | Instant 2026-06-15T08:30:01Z | OffsetDateTime 2026-06-15T08:30:01Z
nanos .123456499 -> LocalDateTime 2026-06-15T14:00:00.123456 | Instant 2026-06-15T08:30:00.123456Z | OffsetDateTime 2026-06-15T08:30:00.123456Z
@@ -0,0 +1,9 @@
# 04-zoned-failure
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# ZonedDateTime on PostgreSQL with java_time_use_direct_jdbc=true
## persist(new ZonedEvent(zonedDefault = 2026-06-15T10:30+02:00[Europe/Paris]))
org.hibernate.exception.SQLGrammarException: Unable to bind parameter #3 - 2026-06-15T10:30+02:00[Europe/Paris] [Cannot cast an instance of java.time.ZonedDateTime to type Types.TIMESTAMP_WITH_TIMEZONE] [n/a]
org.postgresql.util.PSQLException: Cannot cast an instance of java.time.ZonedDateTime to type Types.TIMESTAMP_WITH_TIMEZONE
## find(ZonedEvent.class, 2) -- a row whose ZonedDateTime columns are NULL
org.hibernate.exception.DataException: Could not extract column [4] from JDBC ResultSet [conversion to class java.time.ZonedDateTime from timestamptz not supported] [n/a]
org.postgresql.util.PSQLException: conversion to class java.time.ZonedDateTime from timestamptz not supported
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (written-in-Asia_Kolkata)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (written-in-America_New_York)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 10:30:00+02
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 08:30:00+00
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 04:30:00-04
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 04:30:00-04
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 04:30:00-04
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,5 @@
# 04-zoned (written-in-Asia_Kolkata)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 04:30:00-04
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 04:30:00-04
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 14:00:00+05:30
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,5 @@
# 04-zoned (same-jvm)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 14:00:00+05:30
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,5 @@
# 04-zoned (written-in-America_New_York)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# written: 2026-06-15T10:30+02:00[Europe/Paris] (instant 2026-06-15T08:30:00Z)
ZonedDateTime default out 2026-06-15T08:30Z | equals false | same instant true | zone Z | raw 2026-06-15 14:00:00+05:30
ZonedDateTime COLUMN out 2026-06-15T10:30+02:00 | equals false | same instant true | zone +02:00 | raw 2026-06-15 14:00:00+05:30
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp with time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp with time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp with time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp without time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp with time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp without time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp without time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp without time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,16 @@
# 05-ddl
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# column types Hibernate generated (information_schema.columns)
event odt_column_col_offset integer precision null
event id bigint precision null
event instant_col timestamp with time zone precision 6
event ldt_col timestamp without time zone precision 6
event odt_column_col timestamp with time zone precision 6
event odt_default_col timestamp with time zone precision 6
event odt_native_col timestamp with time zone precision 6
event odt_normalize_col timestamp without time zone precision 6
event odt_normalize_utc_col timestamp with time zone precision 6
zoned_event zdt_column_col_offset integer precision null
zoned_event id bigint precision null
zoned_event zdt_column_col timestamp with time zone precision 6
zoned_event zdt_default_col timestamp with time zone precision 6
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 18:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 18:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# hibernate.jdbc.time_zone=America/New_York while the JVM default zone is Asia/Kolkata
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-03 23:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# hibernate.jdbc.time_zone=America/New_York while the JVM default zone is Asia/Kolkata
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T09:00+05:30 | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 18:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00-04
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-03 23:30:00-04
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00-04
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-03 23:30:00-04
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 18:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00-04
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-03 23:30:00-04
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# hibernate.jdbc.time_zone=Asia/Kolkata while the JVM default zone is America/New_York
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00-04
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-03 23:30:00-04
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# hibernate.jdbc.time_zone=America/New_York while the JVM default zone is Asia/Kolkata
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-03 23:30:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 09:00:00+05:30
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,6 @@
# 06-jdbc-time-zone
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# hibernate.jdbc.time_zone=America/New_York while the JVM default zone is Asia/Kolkata
LocalDateTime in 2026-07-04T09:00 | out 2026-07-04T09:00 | raw 2026-07-04 09:00:00
Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 09:00:00+05:30
OffsetDateTime in 2026-07-04T09:00+05:30 | out 2026-07-04T03:30Z | raw 2026-07-04 09:00:00+05:30
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 09:00:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 09:00:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 7.4.14.Final, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc false (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp_utc)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database H2 2.5.252 (2026-09-23), JVM default zone Asia/Kolkata, java_time_use_direct_jdbc true (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP_UTC
column type timestamp with time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-04 03:30:00+00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp without time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (set)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp without time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 7.4.14.Final, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc false (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp without time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00
@@ -0,0 +1,4 @@
# 07-preferred-instant-jdbc-type (timestamp)
# Hibernate ORM 8.0.0.Beta4, JDK 25, database PostgreSQL 17.11, JVM default zone America/New_York, java_time_use_direct_jdbc true (default)
# hibernate.type.preferred_instant_jdbc_type=TIMESTAMP
column type timestamp without time zone | Instant in 2026-07-04T03:30:00Z | out 2026-07-04T03:30:00Z | raw 2026-07-03 23:30:00

Some files were not shown because too many files have changed in this diff Show More