JPA Almacenamiento de OffsetDateTime con ZoneOffset

Tengo la siguiente clase de entidad:

@Entity
public class Event {
    private OffsetDateTime startDateTime;
    // ...
}

Sin embargo,persistir y luego leer la entidad hacia / desde la base de datos con JPA 2.2 resulta en una pérdida de información: elZoneOffset destartDateTime cambios aUTC (elZoneOffset utilizado por la marca de tiempo de la base de datos). Por ejemplo

Event e = new Event();
e.setStartDateTime(OffsetDateTime.parse("2018-01-02T09:00-05:00"));

e.getStartDateTime().getHour(); // 9
e.getStartDateTime().getOffset(); // ZoneOffset.of("-05:00")
// ...
entityManager.persist(e); // Stored startDateTime as timestamp 2018-01-02T14:00Z

Event other = entityManager.find(Event.class, e.getId());
other.getStartDateTime().getHour(); // 14 - DIFFERENT
other.getStartDateTime().getOffset(); // ZoneOffset.of("+00:00") - DIFFERENT

Necesito usarOffsetDateTime: No puedo usarZonedDateTime, porque las reglas de zona cambian (y eso también sufre esta pérdida de información de todos modos). No puedo usarLocalDateTime, ya que unaEvent sucede en cualquier parte del mundo y necesito la @ originZoneOffset desde que sucedió por razones de precisión. No puedo usarInstant porque un usuario completa la hora de inicio de un evento (el evento es como una cita).

Requisitos:

Necesita poder realizar>, <, >=, <=, ==, != comparaciones en marcas de tiempo en JPA-QL

Necesita poder recuperar la mismaZoneOffset a partir de laOffsetDateTime que persistió

Respuestas a la pregunta(1)

Su respuesta a la pregunta